diff options
Diffstat (limited to 'Hutch/Views/Home/HomeViewModel.swift')
| -rw-r--r-- | Hutch/Views/Home/HomeViewModel.swift | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Hutch/Views/Home/HomeViewModel.swift b/Hutch/Views/Home/HomeViewModel.swift index f0c14dd..ec54759 100644 --- a/Hutch/Views/Home/HomeViewModel.swift +++ b/Hutch/Views/Home/HomeViewModel.swift @@ -188,6 +188,7 @@ final class HomeViewModel { private(set) var projectsError: String? private(set) var assignedTicketsError: String? private(set) var recentBuildsError: String? + private(set) var lastRefreshed: Date? private let currentUser: User private let client: SRHTClient @@ -405,10 +406,17 @@ final class HomeViewModel { systemStatusErrorMessage = error.userFacingMessage } isLoadingSystemStatus = false + lastRefreshed = Date() persistNeedsAttentionSnapshot() persistSystemStatusWidgetSnapshot() } + /// Returns true if sufficient time has elapsed since the last dashboard refresh. + func needsRefresh(after interval: TimeInterval = 60) -> Bool { + guard let lastRefreshed else { return true } + return Date().timeIntervalSince(lastRefreshed) > interval + } + var hasDashboardContent: Bool { !pinnedProjects.isEmpty || !assignedTickets.isEmpty || !recentBuilds.isEmpty || !unreadInboxThreads.isEmpty || systemStatusSnapshot != nil } |
