From 5d0469e1874f13e2b9cdde40e1d30280e0bb2841 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 27 Dec 2025 22:55:13 +0800 Subject: [PATCH] :bug: Fix the is syncing state of chat shows wrongly --- lib/pods/chat/messages_notifier.dart | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/lib/pods/chat/messages_notifier.dart b/lib/pods/chat/messages_notifier.dart index 18a45347..573fb390 100644 --- a/lib/pods/chat/messages_notifier.dart +++ b/lib/pods/chat/messages_notifier.dart @@ -332,9 +332,12 @@ class MessagesNotifier extends _$MessagesNotifier { _allRemoteMessagesFetched = false; talker.log('Starting message sync'); - if (!_disposed) { - Future.microtask(() => ref.read(chatSyncingProvider.notifier).set(true)); - } + // Use Future.microtask to set syncing state, but check disposal to avoid errors + Future.microtask(() { + if (!_disposed) { + ref.read(chatSyncingProvider.notifier).set(true); + } + }); try { final dbMessages = await _database.getMessagesForRoom( _room.id, @@ -411,11 +414,8 @@ class MessagesNotifier extends _$MessagesNotifier { showErrorAlert(err); } finally { talker.log('Finished message sync'); - if (!_disposed) { - Future.microtask( - () => ref.read(chatSyncingProvider.notifier).set(false), - ); - } + // Always reset global syncing state, regardless of disposal + Future.microtask(() => ref.read(chatSyncingProvider.notifier).set(false)); _isSyncing = false; } } @@ -537,11 +537,8 @@ class MessagesNotifier extends _$MessagesNotifier { ); showErrorAlert(err); } finally { - if (!_disposed) { - Future.microtask( - () => ref.read(chatSyncingProvider.notifier).set(false), - ); - } + // Always reset global syncing state, regardless of disposal + Future.microtask(() => ref.read(chatSyncingProvider.notifier).set(false)); } }