From 5f6d545eb3455a9e4da5a3cb4460811e3a48d939 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sun, 12 Apr 2026 00:34:54 -0500 Subject: improve home attention flows and cross-linking --- Hutch/App/AppState.swift | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'Hutch/App') diff --git a/Hutch/App/AppState.swift b/Hutch/App/AppState.swift index 95d9fa9..c2e2744 100644 --- a/Hutch/App/AppState.swift +++ b/Hutch/App/AppState.swift @@ -261,22 +261,48 @@ final class AppState { func openProjectSource(_ source: Project.SourceRepo) async throws { let repository = try await resolveProjectSource(source) - pendingTabNavigation = .repository(repository) - selectedTab = .repositories + navigateToRepository(repository) } func openProjectTracker(_ tracker: Project.Tracker) async throws { let resolvedTracker = try await resolveProjectTracker(tracker) - pendingTabNavigation = .tracker(resolvedTracker) - selectedTab = .tickets + navigateToTracker(resolvedTracker) } func openMailingList(_ mailingList: InboxMailingListReference) { + navigateToMailingList(mailingList) + } + + func openSystemStatus() { + navigateToSystemStatus() + } + + func navigateToRepository(_ repository: RepositorySummary) { + pendingTabNavigation = .repository(repository) + selectedTab = .repositories + } + + func navigateToTracker(_ tracker: TrackerSummary) { + pendingTabNavigation = .tracker(tracker) + selectedTab = .tickets + } + + func navigateToBuild(jobId: Int) { + pendingDeepLink = .build(jobId: jobId) + selectedTab = .builds + } + + func navigateToTicket(ownerUsername: String, trackerName: String, ticketId: Int) { + pendingDeepLink = .ticket(owner: ownerUsername, tracker: trackerName, ticketId: ticketId) + selectedTab = .tickets + } + + func navigateToMailingList(_ mailingList: InboxMailingListReference) { pendingTabNavigation = .mailingList(mailingList) selectedTab = .more } - func openSystemStatus() { + func navigateToSystemStatus() { pendingTabNavigation = .systemStatus selectedTab = .more } -- cgit v1.2.3