[Lock Account][CP Staging] Add LockedAccount modal to handle locked actions gracefully - #62224
Conversation
|
@carlosmiceli Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
@roryabraham updated! |
roryabraham
left a comment
There was a problem hiding this comment.
LGTM other than the extraneous file
|
@roryabraham updated! |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Desktop |
|
Having issues connecting iOS and Android apps to my dev env, so since this resolves a deploy blocker I'm going to make do with web screenshots only |
|
Reassure tests appeared to be stuck, so I'm going to merge this as it resolves a deploy blocker |
[Lock Account][CP Staging] Add LockedAccount modal to handle locked actions gracefully (cherry picked from commit 904a700) (cherry-picked to staging by roryabraham)
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Cherry-picked to staging by https://github.com/roryabraham in version: 9.1.63-5 🚀
@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes. |
|
🚀 Deployed to production by https://github.com/Julesssss in version: 9.1.63-6 🚀
|









Explanation of Change
Adds a new locked account modal that displays to users when they try to take a blocked action and their account is locked.
Fixed Issues
$ Part of internal issue https://github.com/Expensify/Expensify/issues/501413
PROPOSAL: N/A
Tests
For any accounts that you lock you'll need to reach out to an internal expensify team member to unlock the accounts
Actions to take:
Offline tests
QA Steps
Same as test steps
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))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./** comment above it */thisproperly so there are no scoping issues (i.e. foronClick={this.submit}the methodthis.submitshould be bound tothisin the constructor)thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)Screenshots/Videos
Android: Native
Screen.Recording.2025-06-09.at.23.52.32.mov
Android: mWeb Chrome
Screen.Recording.2025-06-10.at.01.10.34.mov
iOS: Native
Simulator.Screen.Recording.-.iPhone.15.-.2025-06-10.at.01.02.37.mp4
iOS: mWeb Safari
ios.mweb.mp4
MacOS: Chrome / Safari
expensify.card.+.payments.mov
no.expensify.card.mov
Security.mov
Screen.Recording.2025-06-10.at.18.36.27.mov
workspace.membership.mov
profile.mov
MacOS: Desktop
Screen.Recording.2025-06-10.at.01.12.14.mov