@@ -20,6 +20,8 @@ using namespace winrt::Windows::UI::Xaml::Navigation;
2020
2121namespace winrt ::Microsoft::Terminal::Settings::Editor::implementation
2222{
23+ static constexpr std::wstring_view ExtensionPageId{ L" page.extensions" };
24+
2325 Extensions::Extensions ()
2426 {
2527 InitializeComponent ();
@@ -35,7 +37,9 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
3537 void Extensions::OnNavigatedTo (const NavigationEventArgs& e)
3638 {
3739 _ViewModel = e.Parameter ().as <Editor::ExtensionsViewModel>();
38- get_self<ExtensionsViewModel>(_ViewModel)->ExtensionPackageIdentifierTemplateSelector (_extensionPackageIdentifierTemplateSelector);
40+ auto vmImpl = get_self<ExtensionsViewModel>(_ViewModel);
41+ vmImpl->ExtensionPackageIdentifierTemplateSelector (_extensionPackageIdentifierTemplateSelector);
42+ vmImpl->MarkAsVisited ();
3943 }
4044
4145 void Extensions::ExtensionNavigator_Click (const IInspectable& sender, const RoutedEventArgs& /* args*/ )
@@ -203,6 +207,11 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
203207 return _ExtensionPackageIdentifierTemplateSelector.SelectTemplate (CurrentExtensionPackage ());
204208 }
205209
210+ bool ExtensionsViewModel::DisplayBadge () const noexcept
211+ {
212+ return !Model::ApplicationState::SharedInstance ().BadgeDismissed (ExtensionPageId);
213+ }
214+
206215 // Returns true if the extension is enabled, false otherwise
207216 bool ExtensionsViewModel::GetExtensionState (hstring extensionSource, const Model::CascadiaSettings& settings)
208217 {
@@ -263,6 +272,12 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
263272 NavigateToColorSchemeRequested.raise (*this , nullptr );
264273 }
265274
275+ void ExtensionsViewModel::MarkAsVisited ()
276+ {
277+ Model::ApplicationState::SharedInstance ().DismissBadge (ExtensionPageId);
278+ _NotifyChanges (L" DisplayBadge" );
279+ }
280+
266281 hstring ExtensionPackageViewModel::Scope () const noexcept
267282 {
268283 return _package.Scope () == Model::FragmentScope::User ? RS_ (L" Extensions_ScopeUser" ) : RS_ (L" Extensions_ScopeSystem" );
0 commit comments