diff options
| author | Christian Cleberg <[email protected]> | 2026-05-14 13:18:55 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-05-14 13:27:41 -0500 |
| commit | 51b2eb0e6296734960f37cebd40fee34a1f261f9 (patch) | |
| tree | 65063727d8dcff3540818676d7b53288499475dd /Hutch/App/HutchApp.swift | |
| parent | 9a853f8777230e0639261b5bc817201ec2d9deca (diff) | |
| download | hutch-51b2eb0e6296734960f37cebd40fee34a1f261f9.tar.gz hutch-51b2eb0e6296734960f37cebd40fee34a1f261f9.tar.bz2 hutch-51b2eb0e6296734960f37cebd40fee34a1f261f9.zip | |
feat: add App Intents for Hutch navigation
- add read-only App Intents for core Hutch workflows
- route intents through the existing Hutch navigation/deep-link model
- expose Work Queue, Recent Activity, System Status, pinned resources, projects, failed builds, assigned tickets, saved searches, and search where supported
- keep App Intents non-mutating for the initial implementation
- preserve existing widget, Safari extension, and hutch:// routing behavior
References: https://todo.sr.ht/~ccleberg/hutch/71
Diffstat (limited to 'Hutch/App/HutchApp.swift')
| -rw-r--r-- | Hutch/App/HutchApp.swift | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/Hutch/App/HutchApp.swift b/Hutch/App/HutchApp.swift index 69d1311..2b1977a 100644 --- a/Hutch/App/HutchApp.swift +++ b/Hutch/App/HutchApp.swift @@ -28,20 +28,10 @@ struct HutchApp: App { deepLinkLogger.error("Rejected URL: \(url.absoluteString, privacy: .public)") } } - .onChange(of: HutchIntentNavigator.shared.pendingDestination) { _, destination in - guard let destination else { return } - HutchIntentNavigator.shared.pendingDestination = nil - let link: DeepLink - switch destination { - case .home: link = .home - case .work: link = .work - case .builds: link = .buildsTab - case .repositories: link = .repositoriesTab - case .trackers: link = .trackersTab - case .systemStatus: link = .systemStatus - case .lookup: link = .lookup - } - appState.pendingDeepLink = link + .onChange(of: HutchIntentNavigator.shared.pendingRoute) { _, route in + guard let route else { return } + HutchIntentNavigator.shared.pendingRoute = nil + appState.open(route) } } } |
