summaryrefslogtreecommitdiff
path: root/Hutch/App
diff options
context:
space:
mode:
Diffstat (limited to 'Hutch/App')
-rw-r--r--Hutch/App/AppStorageKeys.swift2
-rw-r--r--Hutch/App/DeepLink.swift4
-rw-r--r--Hutch/App/HutchApp.swift2
-rw-r--r--Hutch/App/HutchIntents.swift4
-rw-r--r--Hutch/App/RootView.swift14
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