fix(ui): surface download failures, close platform gaps, clean up code layer - #1200
Merged
Merged
Conversation
everpcpc
force-pushed
the
fix/ui-review-batch-4
branch
from
October 4, 2026 10:22
6690c02 to
f56dd18
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1199 (on #1198, on #1197) — review those first; this diff shrinks to batch-4 only once they merge.
Problem
Final batch from the UI review:
UIScreen.main(wrong aspect in split view), EPUB theme settings used a lazy grid inside a self-sizing Form row (a known UIKit recursive-layout crash pattern), slider rows came in two layouts, the in-reader EPUB settings sheet showed full description text against the compact-sheet convention, the login form ignored Return on macOS, and several badges/overlays had adaptivity or clipping issues.Binding(get:set:)sites, dead code (an unreachable ServerView branch, unused properties), five copies of the same deep-link handler each racing a 0.1s delayed append, and hardcoded server-row gradient colors.Fix
DownloadStatus/SeriesDownloadStatusgained adisplayColor(failed = red) and the aggregates afailedcase — any failure with nothing in flight surfaces as red at book, series, and read-list level; the count delta path falls back to a full recount when a failure is involved. Download All on a failed aggregate retries the failures.PageJumpPreviewCardwith tap-to-select on DIVINA, baseline-grid alternate titles, container-geometry tap-zone preview, eager EPUB theme grid, unified slider rows, description text trimmed from the in-reader EPUB settings sheet, merged duplicated reader transitions and next/previous-book navigation..settingsFormWidth()on both EPUB pages, the sidebar toggle is user-controlled again (the detail column already expands), and a footer explains the disabled Protected toggle.onChange), dead code removed, onedeepLinkRoutingmodifier shared by all five shells — reset and push now land in a single atomicNavigationPathassignment instead of a deferred append that could race the stack rebuild — and the server-green gradient moved into asset colors.Validation
make formatmake build— iOS, macOS, tvOS all passmake localize+misc/translate.py list— no missing keys (12 new keys translated for all 10 languages; 7 stale slider keys removed)