Profile and Settings - #61
Merged
Merged
Conversation
The confirm alert's title and its button both carry the words of the danger row, and the row stays in the hierarchy under the alert, so an unanchored text tap matched the title and the confirm was never pressed. Name the confirm by the Cancel button beside it and wait for the alert before aiming. Drop the queued write rather than holding it. A held socket only refuses after five fifteen second request timeouts; a dropped one refuses in seconds, and an unreachable Trakt is what the refusal copy describes. Then let writes through, refuse the revoke, and assert the sign out still lands on onboarding: revoking is best effort and must not strand a session. The flow runs last in the iOS suite now, because it ends on onboarding and the app idle measurement before it needs a signed in session.
The error block centres its headline and body, but the action sets its own alignSelf, so a retry button landed hard left under centred text. Centre it on the main axis, which is the one alignSelf does not own. The lapsed order value wrapped to a second line inside a 190 pt cap while its label was already wrapping, which read as three ragged columns. The cap now clears the longest value on one line and the label still wraps to two. Account.yaml signs back in at the end instead of moving down the suite: the app-idle measurement that follows it is gated to run last and needs the returning user the other flows leave behind.
Pull request footprint
User-delivered artifact sizes
|
Owner
Author
|
iPhone 17 Pro simulator, iOS 27, against the fake Trakt. Every frame is captured after
Two things to read rather than treat as defects: scrolled content passes under the account stack's navigation bar, because the opaque header for that stack lands separately; and the dark default frames carry a back breadcrumb in the status bar from another app that shared this simulator. |
14 tasks
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.
















+1481 / -85, net 1396
Product-Growth: two screens and their helpers are +711 product lines; every preference the core's store already supported gets a control, with no new stored state; nothing was available to delete in exchange because both routes were stubs. The screens already compose the shared row primitives (Row, Separator, RowMenu, Chevron), so what is left is the settings-specific composition rather than a second copy of them.
Binary-Size: JavaScript only; no native change.
Profile shows the identity, the stats with loading, error and empty states, links into History and Settings, and sign out with a confirmation in the platform's shape. Settings groups every preference the core supports (media visibility, spoiler guard, the lapsed drawer order and the rest), each with a strong default and immediate effect, then the Account hand-offs and finally About with the real version and build. Notification settings are left out until notifications exist, so no dead controls ship. Every control is asserted to have an accessible role and name.
The flow opens the account area, checks the identity, turns movies off in Settings, confirms Library reflects it, turns it back on, checks the Account and About rows, then proves sign out twice: refused while a queued write cannot reach Trakt, with the session kept, and completed to onboarding when only the token revoke fails.