feat(ux): detail action overflow + dark-mode fix, form sticky save + unsaved guard - #119
Merged
Merged
Conversation
…unsaved guard Detail view: - Cap inline header actions at two; the surplus joins the record_more actions in the ⋯ menu, so the action bar can't overflow horizontally on a phone. - Make every icon theme-aware (action buttons, the ⋯ trigger, the menu rows, the prev/next chevrons). A hardcoded near-black (#0f172a) icon was invisible on a dark card once dark mode shipped. - i18n the Edit/Delete/Previous/Next/Actions/More-actions/no-related/load-error strings. Form view: - Pin the Save/Cancel buttons in a sticky bar at the bottom of the screen (inside the keyboard-avoider) so Save is reachable without scrolling to the end of a long form. - Track a dirty flag and confirm a discard before leaving with unsaved edits: the in-form Cancel is guarded directly, and `onDirtyChange` lets the host screen guard its header back (wired in new.tsx + edit.tsx). - i18n the Save/Saving/Cancel labels, the required-field message, and the New/Edit screen titles. Tests: FormViewRenderer now needs ConfirmProvider + SafeAreaProvider, so its conditional-fields suite renders through a wrapper. Full suite 1305 passing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
UX-D — Detail + form polish
Fourth of the UX improvements from the browser walkthrough.
Detail view
MAX_INLINE_ACTIONS); the surplus joins therecord_moreactions in the ⋯ menu, so the bar can't overflow horizontally on a phone.#0f172aicon was invisible on a dark card once dark mode shipped.Form view
onDirtyChangelets the host screen guard its header back (wired innew.tsx+edit.tsx).Tests
FormViewRenderernow readsuseConfirm+useSafeAreaInsets, so its conditional-fields suite renders through aConfirmProvider+SafeAreaProviderwrapper. Full suite: 1305 passing.Verified
Browser (375dp, dark, zh): the edit form shows the pinned 取消 / 保存 bar; editing Subject then tapping back fires the localized discard confirm ("放弃更改?" / 取消 / 放弃).
🤖 Generated with Claude Code