Skip to content

Turn the Install category filters into toggle chips - #4926

Merged
ChrisTitusTech merged 4 commits into
ChrisTitusTech:mainfrom
MyDrift-user:feat/install-filter-tabs
Aug 9, 2026
Merged

Turn the Install category filters into toggle chips#4926
ChrisTitusTech merged 4 commits into
ChrisTitusTech:mainfrom
MyDrift-user:feat/install-filter-tabs

Conversation

@MyDrift-user

@MyDrift-user MyDrift-user commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Type of Change

  • New feature
  • Bug fix
  • Documentation update
  • Refactor
  • UI/UX improvement

Description

The category filters on the Install tab were plain buttons. They looked the same as every other button in the tool, and nothing showed which filter was active once you clicked one.

  • The filters are toggle chips now, so you can see which ones are on
  • Ctrl click selects more than one category at once, which was not possible before
  • Clicking the active category again clears the filter, same as the All chip
  • The search box and the category filter no longer get in each other's way
  • The "Filters" label is a filter icon now, with a tooltip about ctrl click

Before:
image
(cannot see which one is selected, long label at start & no multiselect)

After:
image

Clicking a category used to type the category name into the search box, and filter by category only. Typing anything after that dropped the category filter, and you were left searching for the category name plus whatever you typed. So the two could not be used together.

They are independent now. The search box only holds what you type. An app is shown when it matches the search text and is in one of the selected categories, so either filter works on its own or both at once.

A collapsed category opens while a filter is active, since the matches would otherwise sit behind a closed header. With no filter running, collapsed categories stay how you left them.

Demo

Bildschirmaufnahme.2026-08-06.001957.mp4

Verification

  • local compilation
  • full Pester suite, 482 passed

Issue related to PR

N/A

- Replace the filter buttons with toggles that show which ones are active
- Add ctrl click to select more than one category
- Keep the search box and the category filter independent of each other
- Expand matching categories while a filter is active
@github-actions github-actions Bot added new feature New feature or request ui update UI/UX improvements labels Aug 5, 2026
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Added multi-select category filtering for applications, including Ctrl-click support.
    • Combined text and category filters for more precise results.
    • Added updated category filter chips with clear checked-state styling.
    • Matching categories expand automatically while preserving user-collapsed categories.
  • Bug Fixes
    • Clearing filters restores all applications correctly.
    • Search matches literal text in application names and descriptions.
    • Resetting the Install tab clears search text while preserving selected categories.
  • Documentation
    • Added guidance for category filters and combined searching.

Walkthrough

The Install tab now supports persistent multi-category selection. Category chips use additive Ctrl-click behavior, combined text and category filtering, automatic expansion tracking, and toggle-based XAML styling.

Changes

Application filtering

Layer / File(s) Summary
Multi-category search filtering
functions/private/Find-AppsByNameOrDescription.ps1, pester/search-filter.Tests.ps1
Search accepts multiple categories and applies category and text filters independently. Matching categories expand, and clearing filters restores prior expansion state.
Category selection state
functions/private/Invoke-WinUtilAppCategoryChip.ps1, functions/private/Set-WinUtilAppCategoryFilter.ps1, functions/private/Update-WinUtilAppCategoryChip.ps1, functions/private/Initialize-InstallCategoryAppList.ps1
Category handlers maintain selected categories, support additive toggling, synchronize chip states, and preserve explicit user expansion changes.
Filter chip UI wiring
scripts/main.ps1, xaml/inputXML.xaml, pester/xaml.Tests.ps1
The main script maps chip categories and routes clicks through the shared handler. XAML uses toggle chips with checked-state styling and an initially selected All chip.
Rendering and filter reset
functions/private/Start-WinUtilInstallAppRendering.ps1, functions/public/Invoke-WPFTab.ps1, pester/install-rendering.Tests.ps1
Install rendering and tab reset paths reapply filtering with the selected category list.
Category filter documentation
docs/src/content/docs/guides/application.mdx
The application guide documents single- and multi-category filtering, combined search, clearing filters, and category expansion behavior.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested labels: documentation

Suggested reviewers: christitustech

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant CategoryChip
  participant InvokeWinUtilAppCategoryChip
  participant SetWinUtilAppCategoryFilter
  participant FindAppsByNameOrDescription
  participant InstallAppRendering
  User->>CategoryChip: Click category
  CategoryChip->>InvokeWinUtilAppCategoryChip: Invoke handler
  InvokeWinUtilAppCategoryChip->>SetWinUtilAppCategoryFilter: Pass category and additive flag
  SetWinUtilAppCategoryFilter->>FindAppsByNameOrDescription: Apply selected categories and search text
  FindAppsByNameOrDescription-->>User: Update visible and expanded categories
  InstallAppRendering->>FindAppsByNameOrDescription: Reapply active filters after rendering
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly summarizes the main change from plain buttons to toggle chips for Install category filters.
Description check ✅ Passed The description directly explains the toggle chips, multi-category filtering, independent search behavior, and category expansion changes.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@functions/private/Find-AppsByNameOrDescription.ps1`:
- Around line 125-128: Preserve each category’s original collapsed state before
the automatic expansion in the filtering logic around $categoryLabel.Content.
Update the reset path to restore that saved state rather than inferring it from
the modified label, and add a regression test covering a collapsed matching
category that is filtered and then cleared.
- Line 32: Update the caller in Start-WinUtilInstallAppRendering to pass
$sync.SelectedAppCategories.ToArray() via -Categories instead of the obsolete
-Category argument, and invoke the rendering-batch filtering when either search
text or selected categories are active.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1c0e2c92-f058-43ae-be16-0e4fef421e44

📥 Commits

Reviewing files that changed from the base of the PR and between f7c0723 and 8394910.

📒 Files selected for processing (8)
  • functions/private/Find-AppsByNameOrDescription.ps1
  • functions/private/Invoke-WinUtilAppCategoryChip.ps1
  • functions/private/Set-WinUtilAppCategoryFilter.ps1
  • functions/private/Update-WinUtilAppCategoryChip.ps1
  • pester/search-filter.Tests.ps1
  • pester/xaml.Tests.ps1
  • scripts/main.ps1
  • xaml/inputXML.xaml

Comment thread functions/private/Find-AppsByNameOrDescription.ps1
Comment thread functions/private/Find-AppsByNameOrDescription.ps1 Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 839491022e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread functions/private/Find-AppsByNameOrDescription.ps1
Comment thread scripts/main.ps1
- Pass the selected categories to the lazy rendering batches, the old call
  used a parameter that no longer exists and threw while typing
- Keep the category filter when switching tabs, the chips stayed checked
  while the filter itself was dropped
- Put a category back to collapsed once the filter that expanded it is gone

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@functions/public/Invoke-WPFTab.ps1`:
- Around line 35-37: Ensure the search text is cleared before lazy rendering
begins, not only when Invoke-WPFTab later calls Find-AppsByNameOrDescription.
Update the Initialize-WinUtilTabContent queued-batch rendering flow to set
$sync.SearchBar.Text to "" before batches read it, while preserving the
selected-category filtering in Invoke-WPFTab.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9106e10b-99ba-4ba1-ace3-3325daf0d657

📥 Commits

Reviewing files that changed from the base of the PR and between 8394910 and 7aa727f.

📒 Files selected for processing (7)
  • functions/private/Find-AppsByNameOrDescription.ps1
  • functions/private/Initialize-InstallCategoryAppList.ps1
  • functions/private/Start-WinUtilInstallAppRendering.ps1
  • functions/public/Invoke-WPFTab.ps1
  • pester/install-rendering.Tests.ps1
  • pester/search-filter.Tests.ps1
  • pester/xaml.Tests.ps1
🚧 Files skipped from review as they are similar to previous changes (2)
  • pester/xaml.Tests.ps1
  • functions/private/Find-AppsByNameOrDescription.ps1

Comment thread functions/public/Invoke-WPFTab.ps1

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7aa727fb38

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread xaml/inputXML.xaml
- Add a guide section for the chips, ctrl click and clearing the filter
- Note that search and the category chips apply together
@coderabbitai coderabbitai Bot added the documentation Improvements or additions to documentation label Aug 5, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/src/content/docs/guides/application.mdx`:
- Around line 48-49: Update the filtering behavior bullets in the application
guide: clarify that clicking the active category clears filters only when it is
the sole selected category, while clicking without Ctrl replaces multiple
selections with that category. Also state that only categories containing
matching results expand automatically, and user-expanded categories retain their
expanded state after filters are cleared.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 564b00dc-a30c-41d8-a2c4-0b6395332138

📥 Commits

Reviewing files that changed from the base of the PR and between 7aa727f and f55cdca.

📒 Files selected for processing (1)
  • docs/src/content/docs/guides/application.mdx

Comment thread docs/src/content/docs/guides/application.mdx Outdated
- Clearing by clicking the chip only applies when it is the only one selected
- Only categories with matches expand, and only auto expanded ones re-collapse
@mewclouds

Copy link
Copy Markdown
Contributor

Sick! I really like these changes, it makes navigating the apps list much easier to get what you want 😄

@ChrisTitusTech
ChrisTitusTech merged commit 32ab9f0 into ChrisTitusTech:main Aug 9, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation new feature New feature or request ui update UI/UX improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants