Per channel skeleton

This commit is contained in:
2026-03-01 20:10:38 +08:00
parent b9153a070f
commit 029e671367
13 changed files with 380 additions and 153 deletions
+6 -5
View File
@@ -64,11 +64,12 @@ class _TicketsListScreenState extends ConsumerState<TicketsListScreen> {
final profilesAsync = ref.watch(profilesProvider);
final showSkeleton =
realtime.isAnyStreamRecovering ||
ticketsAsync.maybeWhen(loading: () => true, orElse: () => false) ||
officesAsync.maybeWhen(loading: () => true, orElse: () => false) ||
profilesAsync.maybeWhen(loading: () => true, orElse: () => false) ||
notificationsAsync.maybeWhen(loading: () => true, orElse: () => false);
realtime.isChannelRecovering('tickets') ||
realtime.isChannelRecovering('offices') ||
(!ticketsAsync.hasValue && ticketsAsync.isLoading) ||
(!officesAsync.hasValue && officesAsync.isLoading) ||
(!profilesAsync.hasValue && profilesAsync.isLoading) ||
(!notificationsAsync.hasValue && notificationsAsync.isLoading);
if (_isInitial) {
WidgetsBinding.instance.addPostFrameCallback((_) {