[PR #18813] Add Badge to highlight new Extensions Page #31611

Closed
opened 2026-01-31 09:48:23 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/18813

State: closed
Merged: No


Summary of the Pull Request

Adds a badge to the Extensions Page in the SUI's navigation pane to highlight that it's new!

References and Relevant Issues

Targets #18633

Detailed Description of the Pull Request / Additional comments

  • Settings Model changes:
    • Leveraged the ApplicationState class to track which badges have been dismissed and prevent them from appearing again
    • Used a std::unordered_set, but exposed a get and append function via the IDL
  • Settings UI changes:
    • Added a NewInfoBadge style that is just an InfoBadge with "NEW" in it instead of a number or an icon. Based on https://github.com/microsoft/PowerToys/pull/36939
    • The visibility is bound to a get call to the ApplicationState conducted via the ExtensionsPageViewModel. The VM is also responsible for updating the state.

Long-term, we can reuse this system and make the following minor changes:

  • SettingContainer: display the badge. and add logic to read/write ApplicationState appropriately (similarly to above)
  • XPageViewModel:
    • count all the badges that will be displayed and expose/bind that to InfoBadge.Value
    • If a whole page is new, we can just style the badge using the NewInfoBadge style

Validation Steps Performed

Extensions page nav item displays a badge if page hasn't been visited
The badge is dismissed when the user visits the page

**Original Pull Request:** https://github.com/microsoft/terminal/pull/18813 **State:** closed **Merged:** No --- ## Summary of the Pull Request Adds a badge to the Extensions Page in the SUI's navigation pane to highlight that it's new! ## References and Relevant Issues Targets #18633 ## Detailed Description of the Pull Request / Additional comments - Settings Model changes: - Leveraged the `ApplicationState` class to track which badges have been dismissed and prevent them from appearing again - Used a `std::unordered_set`, but exposed a `get` and `append` function via the IDL - Settings UI changes: - Added a `NewInfoBadge` style that is just an InfoBadge with "NEW" in it instead of a number or an icon. Based on https://github.com/microsoft/PowerToys/pull/36939 - The visibility is bound to a `get` call to the `ApplicationState` conducted via the `ExtensionsPageViewModel`. The VM is also responsible for updating the state. Long-term, we can reuse this system and make the following minor changes: - `SettingContainer`: display the badge. and add logic to read/write `ApplicationState` appropriately (similarly to above) - `XPageViewModel`: - count all the badges that will be displayed and expose/bind that to InfoBadge.Value - If a whole page is new, we can just style the badge using the `NewInfoBadge` style ## Validation Steps Performed ✅ Extensions page nav item displays a badge if page hasn't been visited ✅ The badge is dismissed when the user visits the page
claunia added the pull-request label 2026-01-31 09:48:23 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#31611