Fix import/export functionality (#4131)

* fix: cast selections to string to prevent PSCustomObject type issues

* fix(presets): clear existing selections before importing to replace state instead of merging

* refactor(impex): warn user when exporting empty selections or importing empty config
This commit is contained in:
Eren
2026-03-02 22:02:48 +03:00
committed by GitHub
parent 58dacd5b0b
commit 3fb5c04693
4 changed files with 37 additions and 14 deletions

View File

@@ -14,7 +14,9 @@ function Update-WinUtilSelections {
Write-Debug "JSON to import: $($flatJson)"
foreach ($cbkey in $flatJson) {
foreach ($item in $flatJson) {
# Ensure each item is treated as a string to handle PSCustomObject from JSON deserialization
$cbkey = [string]$item
$group = if ($cbkey.StartsWith("WPFInstall")) { "Install" }
elseif ($cbkey.StartsWith("WPFTweaks")) { "Tweaks" }
elseif ($cbkey.StartsWith("WPFToggle")) { "Toggle" }
@@ -26,7 +28,7 @@ function Update-WinUtilSelections {
if (!$sync.selectedApps.Contains($cbkey)) {
$sync.selectedApps.Add($cbkey)
# The List type needs to be specified again, because otherwise Sort-Object will convert the list to a string if there is only a single entry
[System.Collections.Generic.List[pscustomobject]]$sync.selectedApps = $sync.SelectedApps | Sort-Object
[System.Collections.Generic.List[string]]$sync.selectedApps = $sync.SelectedApps | Sort-Object
}
}
"Tweaks" {