diff --git a/frontend/appflowy_flutter/lib/shared/loading.dart b/frontend/appflowy_flutter/lib/shared/loading.dart index f8d1c6fc86..3958601ed8 100644 --- a/frontend/appflowy_flutter/lib/shared/loading.dart +++ b/frontend/appflowy_flutter/lib/shared/loading.dart @@ -40,7 +40,11 @@ class Loading { void stop() { if (loadingContext != null) { - Navigator.of(loadingContext!).pop(); + if (loadingContext!.mounted) { + if (Navigator.canPop(loadingContext!)) { + Navigator.of(loadingContext!).pop(); + } + } loadingContext = null; } diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/sidebar_workspace.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/sidebar_workspace.dart index 50ea9d83c7..07a5aeec4e 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/sidebar_workspace.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/sidebar_workspace.dart @@ -32,7 +32,10 @@ class _SidebarWorkspaceState extends State { @override void dispose() { onHover.dispose(); - + if (loadingIndicator != null) { + loadingIndicator?.stop(); + loadingIndicator = null; + } super.dispose(); } @@ -100,8 +103,10 @@ class _SidebarWorkspaceState extends State { if (isLoading) { loadingIndicator ??= Loading(context)..start(); return; - } else { - loadingIndicator?.stop(); + } else if (loadingIndicator != null) { + if (mounted) { + loadingIndicator?.stop(); + } loadingIndicator = null; }