diff options
Diffstat (limited to 'Hutch/Views/Home/HomeViewModel.swift')
| -rw-r--r-- | Hutch/Views/Home/HomeViewModel.swift | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/Hutch/Views/Home/HomeViewModel.swift b/Hutch/Views/Home/HomeViewModel.swift index 3789c11..7779bea 100644 --- a/Hutch/Views/Home/HomeViewModel.swift +++ b/Hutch/Views/Home/HomeViewModel.swift @@ -365,6 +365,19 @@ final class HomeViewModel { async let inboxUnreadTask = loadInboxUnreadSnapshot(forceRefresh: forceRefresh) async let systemStatusTask = loadSystemStatusSnapshot(forceRefresh: forceRefresh) + // Resolve system status first so the Home title-bar status badge can + // settle from cache without waiting on the slower list data below. + let systemStatusResult = await systemStatusTask + switch systemStatusResult { + case .success(let result): + systemStatusSnapshot = result.value + isShowingStaleSystemStatus = result.isStale + systemStatusErrorMessage = result.isStale ? result.refreshErrorMessage : nil + case .failure(let error): + systemStatusErrorMessage = error.userFacingMessage + } + isLoadingSystemStatus = false + let projectsResult = await projectsTask switch projectsResult { case .success(let projects): @@ -404,16 +417,6 @@ final class HomeViewModel { unreadInboxThreadCount = inboxUnreadSnapshot?.unreadCount unreadInboxThreads = inboxUnreadSnapshot?.threads ?? [] hasUnreadInboxThreads = (unreadInboxThreadCount ?? 0) > 0 - let systemStatusResult = await systemStatusTask - switch systemStatusResult { - case .success(let result): - systemStatusSnapshot = result.value - isShowingStaleSystemStatus = result.isStale - systemStatusErrorMessage = result.isStale ? result.refreshErrorMessage : nil - case .failure(let error): - systemStatusErrorMessage = error.userFacingMessage - } - isLoadingSystemStatus = false lastRefreshed = Date() persistNeedsAttentionSnapshot() persistSystemStatusWidgetSnapshot() |
