Repository navigation
feat(app): loading, error and not-found states for the user-facing routes - #47
Open
jdjioe5-cpu wants to merge 1 commit into
Open
jdjioe5-cpu wants to merge 1 commit into
jdjioe5-cpu wants to merge 1 commit into
Conversation
- Closes Kinlock-Org#37 (Roadmap row M3-27) - Introduce shared Spinner and StatePanel primitives in components/ui/ with motion-safe animations and accessibility roles - Implement root app/loading.tsx and route-specific loading states for /locks and /payee with contextual plain-language descriptions - Implement app/error.tsx with retry button, autofocus for keyboard/screen-readers, zero technical trace exposure, and strict fragment privacy (Hard Rule 5; app/claim untouched) - Implement honest app/not-found.tsx acknowledging potential indexer lag without asserting on-chain absence (Hard Rule 7) - Externalize all strings to messages/en.json (M3-23) - Add unit tests in components/ui/state.test.ts (186/186 tests passing) - Update ROADMAP.md marking M3-27 as DONE with Changelog entry
10 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.
Summary
Closes #37. Fulfills Roadmap row
M3-27(Phase 4, M3 App, Priority P1).This PR introduces route-level designed states across user-facing routes:
SpinnerandStatePanelincomponents/ui/withrole="status"|"alert"|"region", accessibility attributes, andmotion-safe:animate-spinrespectingprefers-reduced-motion.app/loading.tsxas well as route-specific loading states forapp/locks/loading.tsx("Reading the lock from the network…") andapp/payee/loading.tsx("Checking verified payees…").app/error.tsxclient component with autofocus on the retry action, maintainingreset()behavior, with zero technical traces or stack leaks in the UI.app/not-found.tsxwith honest wording distinguishing between local absence and indexer lag.messages/en.json. MarkedM3-27asDONEinROADMAP.mdwith Changelog entry.Hard Rules / Invariants Touched
app/claim/**is untouched;error.tsxnever logs, exposes or references claim-link fragments or addresses.not-found.tsxexplicitly notes indexer propagation delay rather than claiming on-chain absence.lib/i18n/inline-strings.test.ts).Verification & Commands Executed
Real command outputs executed locally: