refactor: Reveal SRP UI (TypeScript, multi-screen flow, skip quiz)#40322
Merged
smgv merged 26 commits intofeat/reveal-srp-uifrom Mar 2, 2026
Merged
refactor: Reveal SRP UI (TypeScript, multi-screen flow, skip quiz)#40322smgv merged 26 commits intofeat/reveal-srp-uifrom
smgv merged 26 commits intofeat/reveal-srp-uifrom
Conversation
Contributor
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
Contributor
Builds ready [1824f71]
⚡ Performance Benchmarks (1357 ± 104 ms)
🌐 Dapp Page Load BenchmarksCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Contributor
Builds ready [594224b]
⚡ Performance Benchmarks (1377 ± 100 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Contributor
✨ Files requiring CODEOWNER review ✨🧪 @MetaMask/qa (1 files, +2 -4)
|
Contributor
Builds ready [746d5c5]
⚡ Performance Benchmarks
🌐 Dapp Page Load BenchmarksCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Contributor
Builds ready [4f38751]
⚡ Performance Benchmarks
🌐 Dapp Page Load BenchmarksCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
|
Contributor
Builds ready [27740d6]
⚡ Performance Benchmarks
🌐 Dapp Page Load BenchmarksCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.



Description
Refactors the Reveal Secret Recovery Phrase flow: converts to TypeScript, features a clearer multi-screen flow with dedicated components, and supports skipping the security quiz when opening from the storage error toast. Also used a safe method: the seed is encoded via an off-screen canvas and rendered as a PNG data URL to generate a QR code.
Jira Link: https://consensyssoftware.atlassian.net/browse/TO-553
Figma Link: https://www.figma.com/design/pViOUcmjwhEzFsdrwknpNc/Onboarding-Redesign?node-id=19651-118991&p=f&m=dev
Changelog
CHANGELOG entry: Updated the Reveal Secret Recovery Phrase flow with a clearer step-by-step experience (quiz intro, security quiz, password, then reveal). Users who open the flow from the storage error toast now go directly to the password step. The page is now built in TypeScript with smaller, reusable components.
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
Before
After
Screen.Recording.2026-02-26.at.4.35.24.PM.mov
Screen.Recording.2026-02-26.at.4.36.09.PM.mov
UI Update:
Screen.Recording.2026-02-26.at.7.53.13.PM.mov
Pre-merge author checklist
Pre-merge reviewer checklist
Note
Medium Risk
Touches security-sensitive key-management UI flows (SRP reveal and vault restore) and associated routing/tests; while largely a refactor, behavior changes like skip-quiz and new QR rendering could regress critical user paths.
Overview
Refactors the Reveal Secret Recovery Phrase experience into a TypeScript, multi-screen flow (
quiz intro→quiz→password→reveal) by splitting UI into focused components (e.g.,PasswordPrompt,QuizQuestion,RevealSeedContent) and adding support for skipping the quiz via navigation location state.Updates SRP reveal QR generation to render a PNG data URL (canvas-based) and adds/standardizes
data-testidhooks used by e2e/tests.Migrates Restore Vault from a class-based JS page to a hook-based TS component using
useNavigate/Redux hooks, updates lazy route imports, and adjustsrequestRevealSeedWordsto accept an optionalkeyringId(multi-SRP). Tests/snapshots/stories and the Jest console baseline are updated accordingly.Written by Cursor Bugbot for commit 27740d6. This will update automatically on new commits. Configure here.