From f3378dd61003f675ff04fa8b17ea9fef24a79016 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sun, 10 May 2026 20:02:29 -0400 Subject: [PATCH] fix(flutter): apply Riverpod 3 NotifierProvider conversion missed in 14d7678 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous fix-forward intended this change but the Edit didn't make it into the commit (only the Go side landed). Re-applying the StateProvider → NotifierProvider conversion so flutter analyze stops failing on the undefined-function for StateProvider. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../lib/update/client_update_provider.dart | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/flutter_client/lib/update/client_update_provider.dart b/flutter_client/lib/update/client_update_provider.dart index f249922f..940f9333 100644 --- a/flutter_client/lib/update/client_update_provider.dart +++ b/flutter_client/lib/update/client_update_provider.dart @@ -74,7 +74,18 @@ final clientUpdateProvider = /// later release's banner re-appears even if the operator dismissed /// the previous one. Not persisted — restart re-shows the banner, /// which is acceptable nudging for v1. -final _dismissedVersionsProvider = StateProvider>((_) => {}); +class _DismissedVersionsNotifier extends Notifier> { + @override + Set build() => {}; + + void add(String version) { + state = {...state, version}; + } +} + +final _dismissedVersionsProvider = + NotifierProvider<_DismissedVersionsNotifier, Set>( + _DismissedVersionsNotifier.new); /// True when the update banner should render: an UpdateInfo is /// available AND the operator hasn't dismissed this specific version. @@ -89,9 +100,8 @@ final shouldShowUpdateBannerProvider = Provider((ref) { /// Dismiss controller: marks the given version as dismissed so the /// banner stops showing for this session. final dismissUpdateProvider = Provider((ref) { - return (version) { - ref.read(_dismissedVersionsProvider.notifier).update((s) => {...s, version}); - }; + return (version) => + ref.read(_dismissedVersionsProvider.notifier).add(version); }); /// Installer provider — depends on dio so the install download uses