From 557ef69697507a65ee07d51e2180eaf244a066bb Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Tue, 21 Apr 2026 22:29:57 +0200 Subject: [PATCH] fix: guard setState/context against disposed widget --- lib/screens/auth_screen.dart | 1 + lib/screens/discover_screen.dart | 1 + lib/screens/libraries/libraries_screen.dart | 1 + 3 files changed, 3 insertions(+) diff --git a/lib/screens/auth_screen.dart b/lib/screens/auth_screen.dart index 814e2693..e9fcba27 100644 --- a/lib/screens/auth_screen.dart +++ b/lib/screens/auth_screen.dart @@ -118,6 +118,7 @@ class _AuthScreenState extends State { Navigator.pushReplacement(context, fadeRoute(MainScreen(client: result.firstClient!))); } catch (e) { appLogger.e('Failed to connect to servers', error: e); + if (!mounted) return; setState(() { _isAuthenticating = false; _errorMessage = t.serverSelection.failedToLoadServers(error: e); diff --git a/lib/screens/discover_screen.dart b/lib/screens/discover_screen.dart index 0c901da9..7f841353 100644 --- a/lib/screens/discover_screen.dart +++ b/lib/screens/discover_screen.dart @@ -570,6 +570,7 @@ class _DiscoverScreenState extends State appLogger.d('Discover content loaded successfully'); } catch (e) { appLogger.e('Failed to load discover content', error: e); + if (!mounted) return; setState(() { _errorMessage = 'Failed to load content: $e'; _isLoading = false; diff --git a/lib/screens/libraries/libraries_screen.dart b/lib/screens/libraries/libraries_screen.dart index a156a2da..da8fd03b 100644 --- a/lib/screens/libraries/libraries_screen.dart +++ b/lib/screens/libraries/libraries_screen.dart @@ -132,6 +132,7 @@ class _LibrariesScreenState extends State // Initialize with libraries from the provider WidgetsBinding.instance.addPostFrameCallback((_) { + if (!mounted) return; _initializeWithLibraries(); }); }