diff options
| author | Christian Cleberg <[email protected]> | 2026-08-07 03:16:14 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-08-07 03:16:14 -0500 |
| commit | 6c26cf048119bf4ff6af039991d3e34d76bac2ad (patch) | |
| tree | 22c3280dca5f85923ddc3cc85bff8751ad46b7fe /Hutch/App/DeepLink.swift | |
| parent | 044c33f7f43db1f38d6c44dd8f483298d9efcc06 (diff) | |
| parent | 9c11d69002d71556fea1e2a938e02d4f4d503ea5 (diff) | |
| download | hutch-6c26cf048119bf4ff6af039991d3e34d76bac2ad.tar.gz hutch-6c26cf048119bf4ff6af039991d3e34d76bac2ad.tar.bz2 hutch-6c26cf048119bf4ff6af039991d3e34d76bac2ad.zip | |
Merge pull request #31 from krazywarez/app-intents-expansion
Expand App Intents: dialogs, search type, mutating intents (#17)
Diffstat (limited to 'Hutch/App/DeepLink.swift')
| -rw-r--r-- | Hutch/App/DeepLink.swift | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/Hutch/App/DeepLink.swift b/Hutch/App/DeepLink.swift index 7467fc8..a0331a0 100644 --- a/Hutch/App/DeepLink.swift +++ b/Hutch/App/DeepLink.swift @@ -25,7 +25,7 @@ enum HutchRoute: Equatable, Sendable { case trackers case systemStatus case lookup - case search(query: String) + case search(query: String, type: LookupType?) case projectDashboard(id: String, title: String?) init?(url: URL) { @@ -103,7 +103,8 @@ enum HutchRoute: Equatable, Sendable { case "lookup": if let query = queryValue("q"), !query.isEmpty { - self = .search(query: query) + let type = queryValue("type").flatMap(LookupType.init(rawValue:)) + self = .search(query: query, type: type) } else { self = .lookup } @@ -148,8 +149,12 @@ enum HutchRoute: Equatable, Sendable { return Self.makeURL(host: "status") case .lookup: return Self.makeURL(host: "lookup") - case .search(let query): - return Self.makeURL(host: "lookup", queryItems: [URLQueryItem(name: "q", value: query)]) + case .search(let query, let type): + var items = [URLQueryItem(name: "q", value: query)] + if let type { + items.append(URLQueryItem(name: "type", value: type.rawValue)) + } + return Self.makeURL(host: "lookup", queryItems: items) case .projectDashboard(let id, let title): return Self.makeURL( host: "projects", @@ -205,8 +210,8 @@ enum DeepLink: Equatable { case systemStatus /// hutch://lookup case lookup - /// hutch://lookup?q=<query> - case search(query: String) + /// hutch://lookup?q=<query>&type=<type> + case search(query: String, type: LookupType?) /// hutch://builds?filter=failed case failedBuilds /// hutch://projects/<rid> @@ -253,8 +258,8 @@ enum DeepLink: Equatable { self = .systemStatus case .lookup: self = .lookup - case .search(let query): - self = .search(query: query) + case .search(let query, let type): + self = .search(query: query, type: type) case .projectDashboard(let id, let title): self = .projectDashboard(id: id, title: title) } |
