diff options
Diffstat (limited to 'Hutch/App')
| -rw-r--r-- | Hutch/App/AppStorageKeys.swift | 2 | ||||
| -rw-r--r-- | Hutch/App/DeepLink.swift | 4 | ||||
| -rw-r--r-- | Hutch/App/HutchApp.swift | 2 | ||||
| -rw-r--r-- | Hutch/App/HutchIntents.swift | 4 | ||||
| -rw-r--r-- | Hutch/App/RootView.swift | 14 |
5 files changed, 23 insertions, 3 deletions
diff --git a/Hutch/App/AppStorageKeys.swift b/Hutch/App/AppStorageKeys.swift index 4be8004..94e1310 100644 --- a/Hutch/App/AppStorageKeys.swift +++ b/Hutch/App/AppStorageKeys.swift @@ -5,12 +5,14 @@ enum AppStorageKeys { static let activeAccountID = "activeAccountID" static let wrapRepositoryFileLines = "wrapRepositoryFileLines" static let lookupHistory = "lookupHistory" + static let recentActivity = "recentActivity" static let scopedSearchHistory = "scopedSearchHistory" static let hutchStatsBaseURL = "hutchStatsBaseURL" static let systemStatusSnapshotCache = "systemStatusSnapshotCache" static let systemStatusIncidentCache = "systemStatusIncidentCache" static let homeProjectsExpanded = "homeProjectsExpanded" static let pinnedHomeProjects = "pinnedHomeProjects" + static let pinnedHomeItems = "pinnedHomeItems" static let homeAssignedTicketsExpanded = "homeAssignedTicketsExpanded" static let homeBuildsExpanded = "homeBuildsExpanded" static let buildsAutoRefreshInterval = "buildsAutoRefreshInterval" diff --git a/Hutch/App/DeepLink.swift b/Hutch/App/DeepLink.swift index bbf8885..786891d 100644 --- a/Hutch/App/DeepLink.swift +++ b/Hutch/App/DeepLink.swift @@ -3,6 +3,7 @@ import Foundation /// Represents a parsed `hutch://` deep link. enum DeepLink: Equatable { case home + case work /// hutch://git/<owner>/<repo> case repository(owner: String, repo: String) /// hutch://todo/<owner>/<tracker>/<ticketId> @@ -33,6 +34,9 @@ enum DeepLink: Equatable { case "home", nil: self = .home + case "work", "inbox": + self = .work + case "git" where components.count >= 3: let owner = components[1] let repo = components[2] diff --git a/Hutch/App/HutchApp.swift b/Hutch/App/HutchApp.swift index 853b1c2..0fb1875 100644 --- a/Hutch/App/HutchApp.swift +++ b/Hutch/App/HutchApp.swift @@ -26,7 +26,7 @@ struct HutchApp: App { let link: DeepLink switch destination { case .home: link = .home - case .inbox: link = .home + case .work: link = .work case .builds: link = .buildsTab case .repositories: link = .repositoriesTab case .trackers: link = .trackersTab diff --git a/Hutch/App/HutchIntents.swift b/Hutch/App/HutchIntents.swift index 652c07b..a7a33b3 100644 --- a/Hutch/App/HutchIntents.swift +++ b/Hutch/App/HutchIntents.swift @@ -5,7 +5,7 @@ import Foundation enum HutchDestination: String, AppEnum { case home - case inbox + case work case builds case repositories case trackers @@ -16,7 +16,7 @@ enum HutchDestination: String, AppEnum { static var caseDisplayRepresentations: [HutchDestination: DisplayRepresentation] = [ .home: "Home", - .inbox: "Inbox", + .work: "Work", .builds: "Builds", .repositories: "Repositories", .trackers: "Trackers", diff --git a/Hutch/App/RootView.swift b/Hutch/App/RootView.swift index f65bced..b4cf3bd 100644 --- a/Hutch/App/RootView.swift +++ b/Hutch/App/RootView.swift @@ -69,6 +69,12 @@ struct RootView: View { return TabView(selection: $appState.selectedTab) { NavigationStack(path: $homePath) { HomeView() + .navigationDestination(for: HomeRoute.self) { route in + switch route { + case .work: + WorkView() + } + } } .tag(AppState.Tab.home) .tabItem { @@ -196,6 +202,14 @@ struct RootView: View { case .ticket(let owner, let tracker, let ticketId): resolveTicketLink(owner: owner, tracker: tracker, ticketId: ticketId) + case .work: + homePath = NavigationPath() + appState.selectedTab = .home + Task { + await settleNavigationTransition() + homePath.append(HomeRoute.work) + } + case .buildsTab: buildsPath = NavigationPath() appState.selectedTab = .builds |
