fix: Login: Refreshing "Enter 2FA code" page shows empty Sign In screen#83121
fix: Login: Refreshing "Enter 2FA code" page shows empty Sign In screen#83121mohammadjafarinejad wants to merge 1 commit intoExpensify:mainfrom
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
PR Review — #83121Summary: This PR preserves What looks good
Concerns1. Credentials preserved during explicit sign-out (Medium severity) When a user explicitly signs out via Could you confirm that 2. After the user successfully completes 2FA and receives a full VerdictThe approach is sound and the code quality is good. The main area to verify is the interaction with explicit sign-out — specifically whether the Onyx |
JmillsExpensify
left a comment
There was a problem hiding this comment.
LGTM for product.
Explanation of Change
clearStorageAndRedirect()was clearingCREDENTIALSandACCOUNTfrom Onyx during the 2FA step, sending users back to an empty sign-in page on refresh. AddedconnectWithoutViewlisteners forSESSIONandCREDENTIALS, and now preserve both Onyx keys when!authToken && !!validateCode(incomplete sign-in).Fixed Issues
$ #82588
PROPOSAL: #82588 (comment)
Tests
Offline tests
None, requires internet connection
QA Steps
Same as test.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
android.mp4
Android: mWeb Chrome
android-web.mp4
iOS: Native
ios.mp4
iOS: mWeb Safari
ios-web.mp4
MacOS: Chrome / Safari
web.mp4