Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates FlowSetup2faPrompt (in fxa-settings) to present clearer copy when the user has just signed in with a passkey and is being prompted to set up two-step authentication, including new localized strings, tests, and a Storybook story.
Changes:
- Added an optional
signedInWithPasskeyprop to conditionally show a success banner and alternate body copy. - Added new Fluent strings (
en.ftl) for the passkey success banner and passkey-specific description copy. - Updated unit tests and Storybook stories to cover the passkey path.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| packages/fxa-settings/src/components/Settings/FlowSetup2faPrompt/index.tsx | Adds signedInWithPasskey branching for banner + description copy using Fluent resolver. |
| packages/fxa-settings/src/components/Settings/FlowSetup2faPrompt/index.test.tsx | Adds tests covering the new passkey banner and copy branch. |
| packages/fxa-settings/src/components/Settings/FlowSetup2faPrompt/index.stories.tsx | Adds a Storybook story for the passkey branch. |
| packages/fxa-settings/src/components/Settings/FlowSetup2faPrompt/en.ftl | Adds two new Fluent message IDs for the passkey branch. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
vpomerleau
self-requested a review
August 13, 2026 18:34
vpomerleau
marked this pull request as draft
August 13, 2026 18:34
Because: * Telling a passkey user the service "requires you to set up two-step authentication to keep your account safe" is misleading. The passkey already authenticated them; the setup protects the other sign-in methods. * UX has finalized the replacement copy. This commit: * Swaps the body copy and adds a success banner on FlowSetup2faPrompt when the session came from a passkey. * Adds two FTL ids, reusing the shared -product-mozilla-account term. * Forwards isPasskeySession into SigninLocationState and on through the InlineTotpSetup container, so the copy actually renders. * Lets an error banner replace the success banner rather than stack. * Covers both paths in unit tests, a Storybook story, and the two AAL2 passkey functional tests. Closes #FXA-13822
vpomerleau
marked this pull request as ready for review
August 13, 2026 20:15
vpomerleau
approved these changes
Aug 13, 2026
vpomerleau
approved these changes
Aug 13, 2026
bcolsson
approved these changes
Aug 14, 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.
Because
This pull request
FlowSetup2faPromptwhen the session came from a passkey. Page label, heading, authenticator-apps line, and Continue button are unchanged.-product-mozilla-accountterm.isPasskeySessionalready reachedhandleNavigationfrom the passkey sign-in flow but was dropped bycreateSigninLocationState; it now survives intoSigninLocationStateand flows through theInlineTotpSetupcontainer to the prompt.Caveat: the flag lives in router state, so a hard reload of
/inline_totp_setupfalls back to the generic copy. ReadingsessionStatus().details.sessionVerificationMethodwould survive reloads, but it is also true for a cached passkey session, where "Successfully signed in with passkey" would be inaccurate.Issue that this pull request solves
Closes: https://mozilla-hub.atlassian.net/browse/FXA-13822
Checklist
Put an
xin the boxes that applyHow to review (Optional)
Signin/utils.ts(createSigninLocationState) →InlineTotpSetup/container.tsx→FlowSetup2faPrompt/index.tsx.Screenshots (Optional)
None. Visual fidelity was not checked. Open the
Pages/InlineTotpSetup→SignedInWithPasskeystory and compare against Figma node 3958-21735.Other information (Optional)
Verification:
nx lint fxa-settingsandyarn compileclean; 74 tests pass acrossFlowSetup2faPrompt,InlineTotpSetup, andSignin/utils. Playwright not run locally.