feat(onboarding): add onboarding view with empty/error states, live region, and memoized rows - #616
Merged
mikewheeleer merged 2 commits intoJul 30, 2026
Conversation
…egion, and memoized rows Closes Agentpay-Org#495 Closes Agentpay-Org#496 Closes Agentpay-Org#497 Closes Agentpay-Org#498
This was referenced Jul 30, 2026
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
No
onboardingpage/component existed in the repo. Issues #495-#498 each describe an incremental slice (empty/error states, an ARIA live region, tests, memoization) of an onboarding view that would need to already exist, so this builds the minimal view those issues collectively assume, in one PR since they're all facets of the same small component (same shape as #614 for transactions):src/app/onboarding/page.tsx— fetches/api/v1/onboardingvia the existinguseApihookSpinner), error (ErrorMessagewithonRetry), and empty (EmptyState) states (Add explicit empty and error states to the onboarding view #495)role="status" aria-live="polite"region announcing loading/error/empty/loaded transitions (Announce onboarding updates through an ARIA live region #496)OnboardingStepRowwrapped inmemo(Memoize onboarding rendering to avoid re-renders #498)pageTitles.onboardingentry + route layoutTests (#497)
page.test.tsx: loading spinner, rendering step rows once loaded, empty state, error state with retry button, retry actually re-fetches and recovers, and the live region's text updates across state transitions. All 6 pass locally.Test output
Same pre-existing, unrelated
main-at-HEADtsc --noEmiterrors noted in #614 (11 errors in existing test files, confirmed viagit stash).npx eslint src/app/onboarding src/app/pageTitles.tsis clean.Closes #495
Closes #496
Closes #497
Closes #498