Fix search

This commit is contained in:
Chris Titus Tech
2026-02-05 15:59:04 -06:00
parent 53f837f1e9
commit b7d15569cd

View File

@@ -13,46 +13,45 @@ function Find-AppsByNameOrDescription {
# Reset the visibility if the search string is empty or the search is cleared # Reset the visibility if the search string is empty or the search is cleared
if ([string]::IsNullOrWhiteSpace($SearchString)) { if ([string]::IsNullOrWhiteSpace($SearchString)) {
$sync.ItemsControl.Items | ForEach-Object { $sync.ItemsControl.Items | ForEach-Object {
# Each item is a StackPanel container
$_.Visibility = [Windows.Visibility]::Visible $_.Visibility = [Windows.Visibility]::Visible
$_.Children | ForEach-Object {
if ($null -ne $_) { if ($_.Children.Count -ge 2) {
$categoryLabel = $_.Children[0]
$wrapPanel = $_.Children[1]
# Keep category label visible
$categoryLabel.Visibility = [Windows.Visibility]::Visible
# Respect the collapsed state of categories (indicated by + prefix) # Respect the collapsed state of categories (indicated by + prefix)
if ($_.Tag -like "CategoryToggleButton" -and $_.Content -like "+*") {
# Keep category label visible but don't expand the WrapPanel
$_.Visibility = [Windows.Visibility]::Visible
}
elseif ($_.Tag -like "CategoryWrapPanel_*") {
# Check if parent category is collapsed (has + prefix)
$categoryLabel = $_.Parent.Children[0]
if ($categoryLabel.Content -like "+*") { if ($categoryLabel.Content -like "+*") {
# Keep collapsed $wrapPanel.Visibility = [Windows.Visibility]::Collapsed
$_.Visibility = [Windows.Visibility]::Collapsed
} else { } else {
# Expand $wrapPanel.Visibility = [Windows.Visibility]::Visible
$_.Visibility = [Windows.Visibility]::Visible
}
}
else {
$_.Visibility = [Windows.Visibility]::Visible
}
} }
} # Show all apps within the category
} $wrapPanel.Children | ForEach-Object {
return
}
$sync.ItemsControl.Items | ForEach-Object {
# Ensure ToggleButtons remain visible
if ($_.Tag -like "CategoryToggleButton") {
$_.Visibility = [Windows.Visibility]::Visible $_.Visibility = [Windows.Visibility]::Visible
}
}
}
return return
} }
# Hide all CategoryWrapPanel and ToggleButton
$_.Visibility = [Windows.Visibility]::Collapsed # Perform search
if ($_.Tag -like "CategoryWrapPanel_*") { $sync.ItemsControl.Items | ForEach-Object {
# Each item is a StackPanel container with Children[0] = label, Children[1] = WrapPanel
if ($_.Children.Count -ge 2) {
$categoryLabel = $_.Children[0]
$wrapPanel = $_.Children[1]
$categoryHasMatch = $false $categoryHasMatch = $false
# Search for Apps that match the search string
$_.Children | Foreach-Object { # Keep category label visible
$categoryLabel.Visibility = [Windows.Visibility]::Visible
# Search through apps in this category
$wrapPanel.Children | ForEach-Object {
$appEntry = $sync.configs.applicationsHashtable.$($_.Tag) $appEntry = $sync.configs.applicationsHashtable.$($_.Tag)
if ($appEntry.Content -like "*$SearchString*" -or $appEntry.Description -like "*$SearchString*") { if ($appEntry.Content -like "*$SearchString*" -or $appEntry.Description -like "*$SearchString*") {
# Show the App and mark that this category has a match # Show the App and mark that this category has a match
@@ -66,12 +65,15 @@ function Find-AppsByNameOrDescription {
# If category has matches, show the WrapPanel and update the category label to expanded state # If category has matches, show the WrapPanel and update the category label to expanded state
if ($categoryHasMatch) { if ($categoryHasMatch) {
$wrapPanel.Visibility = [Windows.Visibility]::Visible
$_.Visibility = [Windows.Visibility]::Visible $_.Visibility = [Windows.Visibility]::Visible
# Update category label to show expanded state (-) # Update category label to show expanded state (-)
$categoryLabel = $_.Parent.Children[0]
if ($categoryLabel.Content -like "+*") { if ($categoryLabel.Content -like "+*") {
$categoryLabel.Content = $categoryLabel.Content -replace "^\+ ", "- " $categoryLabel.Content = $categoryLabel.Content -replace "^\+ ", "- "
} }
} else {
# Hide the entire category container if no matches
$_.Visibility = [Windows.Visibility]::Collapsed
} }
} }
} }