diff options
| author | Christian Cleberg <[email protected]> | 2026-07-16 00:29:34 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-07-16 00:29:34 -0500 |
| commit | 6898bc3fc00decee7224895ea75908daf0f97f59 (patch) | |
| tree | ee4cdf2760d45586d20c106212a6cfb1b7d0d9aa /Hutch/Views/Repositories/RepositoryListViewModel.swift | |
| parent | 2514b58a96ccb73b4feea8f74a2367c72ba824c8 (diff) | |
| download | hutch-6898bc3fc00decee7224895ea75908daf0f97f59.tar.gz hutch-6898bc3fc00decee7224895ea75908daf0f97f59.tar.bz2 hutch-6898bc3fc00decee7224895ea75908daf0f97f59.zip | |
fix: blank mailing list from Projects, swipe flicker, hidden upload
Three problems from manual testing.
Opening a mailing list from More → Projects showed a blank screen, while the
same tap on a project pinned to Home worked. handleTabNavigation reset the
target path and appended to it two Task.yields later. When the target tab is
already on screen — Projects lives under More — the reset starts an animated pop
of the view the user is standing on and the appends land mid-animation. From
Home the tab actually changes, so the More stack is quiescent and the appends
land cleanly. Each case now builds its path and assigns it once, so SwiftUI gets
a single diff with nothing to race.
Destructive swipe actions made the row vanish and spring back while the
confirmation was still up. role: .destructive makes SwiftUI perform the row
removal on activation, which allowsFullSwipe: false does not prevent — the
report was a tap, not a full swipe. These buttons only record pending state and
wait for an answer, so they are plain buttons tinted red instead. Six sites: the
two added here, plus trackers, pastes, and tracker ACLs and labels, which had
the same flicker already.
The artifacts upload control was invisible. It was declared as a toolbar item
from a view that is a segment inside RepositoryDetailView's tab switch rather
than its own navigation destination, so it never reached the navigation bar. It
is a row in the list now, and also an action on the empty state — the overlay
covers the list, and a repository with no artifacts is precisely the one that
needs uploading.
Diffstat (limited to 'Hutch/Views/Repositories/RepositoryListViewModel.swift')
0 files changed, 0 insertions, 0 deletions
