summaryrefslogtreecommitdiff
path: root/Hutch/Views/Home/HomeViewModel.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-07-16 17:08:45 -0500
committerGitHub <[email protected]>2026-07-16 17:08:45 -0500
commita5d1064ff798cda8a237f2a11877634cd81f7ac3 (patch)
tree2a57a9f152a05ae61307ca8be1220c2a1ee2d708 /Hutch/Views/Home/HomeViewModel.swift
parentcd8742a0b932627401467bef8b7d5c376798382e (diff)
parent7b817a1d2aed0e8b89f36b410f2779f4a6b35407 (diff)
downloadhutch-a5d1064ff798cda8a237f2a11877634cd81f7ac3.tar.gz
hutch-a5d1064ff798cda8a237f2a11877634cd81f7ac3.tar.bz2
hutch-a5d1064ff798cda8a237f2a11877634cd81f7ac3.zip
Merge pull request #20 from zerolabsco/home-status-badge
Move Home system status into a title-bar status badge
Diffstat (limited to 'Hutch/Views/Home/HomeViewModel.swift')
-rw-r--r--Hutch/Views/Home/HomeViewModel.swift23
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()