summaryrefslogtreecommitdiff
path: root/Hutch/Views/Tickets
Commit message (Collapse)AuthorAgeFilesLines
* fix(tickets): load all pages on tracker open for accurate Open tabChristian Cleberg2026-04-131-5/+26
| | | | | | | | todo.sr.ht only exposes cursor-based `tracker.tickets` (no status filter), so client-side Open filtering missed older open tickets when only the first page was loaded. Paginate until the cursor is exhausted in loadTickets(). Fixes: https://todo.sr.ht/~ccleberg/hutch/62
* feat(theme): AMOLED true-black rows via themedRow()Christian Cleberg2026-04-134-1/+75
| | | | | | | | | | Apply listRowBackground(Color.black) per row in AMOLED mode using ThemedRowStyle and themedRow() across Lists and Forms. Use themedList() for scroll/grouped backgrounds. Treat segmented and clear list rows with isAMOLED-aware listRowBackground where Color.clear was required. Removes reliance on UIKit appearance for list cells on iOS 16+. Implements: https://todo.sr.ht/~ccleberg/hutch/24
* fix: suppress false "network request failed" error on ticket list scrollChristian Cleberg2026-04-131-1/+5
| | | | | | | | | | | | | | When scrolling through a large tracker, SwiftUI's .task modifier cancels in-flight pagination requests as rows leave the screen. URLSession responds with URLError(-999), which was being surfaced to the user as "The network request failed. Please try again." — even though the cancellation is expected and benign. Guard against Task.isCancelled in the catch block so cancellations are silently ignored; isLoadingMore is still reset unconditionally so the next scroll attempt retries from the same cursor position. Fixes: https://todo.sr.ht/~ccleberg/hutch/61
* fix: show empty state for bare git repos instead of an errorChristian Cleberg2026-04-131-7/+27
| | | | | | | | | | | git.sr.ht returns "internal system error" from the references query and "reference not found" from the log/readme queries when a repo has no commits. Broaden isEmptyRepositoryError to cover missingReference, unknownRevision, noRows, notFound, and those two message strings, then apply the same silent-empty treatment to loadReferences and loadArtifacts (which previously surfaced any error directly to the user). Fixes: https://todo.sr.ht/~ccleberg/hutch/60
* perf: cache filtered collections and add equatable row viewsChristian Cleberg2026-04-132-7/+19
| | | | | | | | | | | | | | | | Convert filteredJobs, filteredPastes, and filteredTickets from computed properties to stored properties updated via didSet on their inputs. Each update function guards with an equality check before assigning, so @Observable skips the notification when the filtered result hasn't changed — preventing list re-renders on auto-refresh when no visible data has actually changed. Add Equatable conformance to BuildRowView, PasteRowView, TicketRowView, and SelectableTicketRow, and apply .equatable() at each ForEach call site. When a list does re-render, SwiftUI now skips body evaluation for rows whose model value is identical to the previous pass. Implements: https://todo.sr.ht/~ccleberg/hutch/57
* release: v3.0.0 — navigation overhaul, Work view, and multi-pin supportv3.0.0Christian Cleberg2026-04-132-15/+58
| | | | | | | | | | | | | | | | | | | | Reworks the app's core navigation and home screen for v3.0.0: - Replace Inbox with Work view: unified dashboard showing unread threads and assigned tickets, with All/Unread/Assigned scope picker - Overhaul Home screen: redesigned with pinned items grid (trackers, repos, mailing lists, users), recent activity section, and system status banner; backed by HomePinStore supporting all resource types - Simplify navigation bars across list screens: default toolbar shows only the primary action (+) and an overflow menu (…); pin, share, and select moved into the overflow menu; selection mode gets its own nav bar with Cancel / "N Selected" / All - Consolidate repo detail toolbars: pin and share moved into the existing actions menu for both Git and Mercurial detail views - Add recent activity tracking via RecentActivityStore - Add work and inbox deep link aliases (hutch://work, hutch://inbox) Implements: https://todo.sr.ht/~ccleberg/hutch/55
* feat: add power user actionsChristian Cleberg2026-04-134-14/+226
| | | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/52 Implements: https://todo.sr.ht/~ccleberg/hutch/53 Implements: https://todo.sr.ht/~ccleberg/hutch/54
* feat: add multi-account supportChristian Cleberg2026-04-121-2/+3
| | | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/49 Implements: https://todo.sr.ht/~ccleberg/hutch/50 Implements: https://todo.sr.ht/~ccleberg/hutch/51
* feat: add search and recent queriesChristian Cleberg2026-04-122-5/+58
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/47 Implements: https://todo.sr.ht/~ccleberg/hutch/48
* feat: add ticket label management and bulk actionsChristian Cleberg2026-04-123-42/+623
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/45 Implements: https://todo.sr.ht/~ccleberg/hutch/46
* feat: polish read-only project views and home integrationChristian Cleberg2026-04-121-76/+133
| | | | | | Refs: https://todo.sr.ht/~ccleberg/hutch/36 Refs: https://todo.sr.ht/~ccleberg/hutch/37 Refs: https://todo.sr.ht/~ccleberg/hutch/38
* feat: add ticket saved filters and label filteringChristian Cleberg2026-04-123-35/+530
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/32 Implements: https://todo.sr.ht/~ccleberg/hutch/33
* feat: improve ticket list actions and metadata visibilityChristian Cleberg2026-04-121-48/+71
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/20 Implements: https://todo.sr.ht/~ccleberg/hutch/21
* improve home attention flows and cross-linkingv2.14.0Christian Cleberg2026-04-121-0/+35
|
* chore: add explanatory comments to all intentional empty closuresv2.10.2Christian Cleberg2026-04-033-6/+14
|
* feat: browse user repositories and trackers from profilev2.9.0Christian Cleberg2026-04-021-10/+9
|
* feat: add Look Up screen and restrict management actions to ownersv2.8.0Christian Cleberg2026-04-012-3/+22
| | | | Implements: https://todo.sr.ht/~ccleberg/Hutch/4
* reverse order of swipe actions for user acls in trackersChristian Cleberg2026-04-011-8/+7
|
* Add tracker management (delete/update, ACLs, labels)v2.7.0Christian Cleberg2026-04-016-215/+1690
| | | | | | | | | | | | | - Add swipe actions (delete/edit) to tracker list - Add tracker settings menu on detail screen - Implement updateTracker and deleteTracker mutations - Implement ACL management (updateUserACL, updateTrackerACL, deleteACL) - Implement label management (createLabel, updateLabel, deleteLabel) - Add dedicated UI flows for ACLs and labels - Ensure state refresh after mutations - Handle loading, errors, and destructive confirmations Implements: https://todo.sr.ht/~ccleberg/Hutch/12
* fix: add nested comments to satisfy sonar rule swift:S1186Christian Cleberg2026-03-241-1/+3
|
* delete extraneous test filesChristian Cleberg2026-03-221-141/+0
|
* feat: swipe actions on tickets, pastes, builds, and home dashboardChristian Cleberg2026-03-222-0/+513
|
* feat: add search to builds, trackers, tickets, pastes, mailing lists, and inboxChristian Cleberg2026-03-224-6/+102
|
* feat: add privacy policy link and global swipe actions toggle to SettingsChristian Cleberg2026-03-221-0/+141
|
* v2.1: bundled polish and fixesChristian Cleberg2026-03-195-35/+19
|
* feat: add inbox threads and move builds under moreChristian Cleberg2026-03-192-4/+127
|
* Omit resolution when reopening resolved ticketsChristian Cleberg2026-03-182-9/+16
|
* show tracker creation errors inside the creation sheetChristian Cleberg2026-03-182-2/+44
|
* v1.0Christian Cleberg2026-03-176-0/+2363