From 06d420eabe236f7d1c1021eeef7c2bdd377a6034 Mon Sep 17 00:00:00 2001 From: freebeartogoodhome <801dan@protonmail.com> Date: Mon, 11 May 2026 02:33:59 -0600 Subject: [PATCH] Add some mounted checks before setState, after using await (#3144) --- .../play/create_correspondence_game_bottom_sheet.dart | 8 +++++--- lib/src/view/settings/account_preferences_screen.dart | 8 +++++--- lib/src/view/settings/engine_settings_screen.dart | 1 + lib/src/view/settings/piece_set_screen.dart | 8 +++++--- lib/src/view/tournament/tournament_screen.dart | 5 +++-- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/lib/src/view/play/create_correspondence_game_bottom_sheet.dart b/lib/src/view/play/create_correspondence_game_bottom_sheet.dart index fb8a514a6..5c5e58342 100644 --- a/lib/src/view/play/create_correspondence_game_bottom_sheet.dart +++ b/lib/src/view/play/create_correspondence_game_bottom_sheet.dart @@ -151,9 +151,11 @@ class _CreateGameBodyState extends ConsumerState { ); if (isOk == true) { await ref.read(nnueServiceProvider).deleteNNUEFiles(); + if (!mounted) return; setState(() { _hasVerifiedNNUEFiles = false; }); diff --git a/lib/src/view/settings/piece_set_screen.dart b/lib/src/view/settings/piece_set_screen.dart index 2a9544d3c..a64f095c9 100644 --- a/lib/src/view/settings/piece_set_screen.dart +++ b/lib/src/view/settings/piece_set_screen.dart @@ -32,9 +32,11 @@ class _PieceSetScreenState extends ConsumerState { try { await precachePieceImages(value); } finally { - setState(() { - isLoading = false; - }); + if (mounted) { + setState(() { + isLoading = false; + }); + } } } } diff --git a/lib/src/view/tournament/tournament_screen.dart b/lib/src/view/tournament/tournament_screen.dart index 13a52bd1f..819af0a98 100644 --- a/lib/src/view/tournament/tournament_screen.dart +++ b/lib/src/view/tournament/tournament_screen.dart @@ -1150,7 +1150,7 @@ class _BottomBarState extends ConsumerState<_BottomBar> { if (selectedTeamId == null) { return; // User cancelled } - + if (!mounted) return; setState(() { joinOrLeaveInProgress = true; }); @@ -1166,7 +1166,7 @@ class _BottomBarState extends ConsumerState<_BottomBar> { if (entryCode == null || entryCode.isEmpty) { return; } - + if (!mounted) return; setState(() { joinOrLeaveInProgress = true; }); @@ -1176,6 +1176,7 @@ class _BottomBarState extends ConsumerState<_BottomBar> { .read(tournamentControllerProvider(widget.state.id).notifier) .joinOrPause(entryCode: entryCode); } catch (e) { + if (!mounted) return; setState(() { joinOrLeaveInProgress = false; });