fix: eliminate pull-to-refresh flicker by holding stale data during re-fetch
This commit is contained in:
+7
-7
@@ -236,13 +236,13 @@ class _ShellState extends ConsumerState<_Shell> with WidgetsBindingObserver {
|
||||
/// Refresh every major data provider. Safe to call speculatively —
|
||||
/// providers that aren't currently watched are already disposed.
|
||||
void _refreshAll() {
|
||||
ref.invalidate(conversationsProvider);
|
||||
ref.invalidate(calendarProvider);
|
||||
ref.invalidate(newsProvider);
|
||||
// Notifier (not AsyncNotifier) — needs explicit refresh call.
|
||||
ref.read(conversationsProvider.notifier).refresh();
|
||||
ref.read(calendarProvider.notifier).refresh();
|
||||
ref.read(newsProvider.notifier).refresh();
|
||||
ref.read(knowledgeProvider.notifier).refresh();
|
||||
// briefingProvider is an AsyncNotifier family; invalidating the family
|
||||
// is safe even if no conversation is open.
|
||||
// briefingProvider is an AsyncNotifier family; invalidating is safe
|
||||
// even if no conversation is open — it doesn't cause flicker since
|
||||
// the briefing screen isn't a list view.
|
||||
ref.invalidate(briefingProvider);
|
||||
}
|
||||
|
||||
@@ -254,7 +254,7 @@ class _ShellState extends ConsumerState<_Shell> with WidgetsBindingObserver {
|
||||
case 1:
|
||||
ref.read(knowledgeProvider.notifier).refresh();
|
||||
case 2:
|
||||
ref.invalidate(conversationsProvider);
|
||||
ref.read(conversationsProvider.notifier).refresh();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user