Repository navigation
Defer the trial payment reminder while required 2FA is active. - #102584
luacmartins merged 1 commit into
Conversation
The reminder only yielded to real modals, so it opened over the full-screen 2FA overlay and blocked Enable.
|
@thelullabyy 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] |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / SafariScreen.Recording.2026-10-07.at.23.22.59.mov |
dylanexpensify
left a comment
There was a problem hiding this comment.
Looks good from a product perspective 👍
|
@neerajbachani Could you please update the PR description to use latest template? Thanks |
|
@thelullabyy Updated the PR description, All yours. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 luacmartins has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/luacmartins in version: 9.5.6-0 🚀
|
|
No help site update needed. This bug fix stops the free trial payment reminder from covering the required 2FA screen, and no help article describes that reminder or its timing. |
|
🚀 Deployed to production by https://github.com/puneetlath in version: 9.5.6-6 🚀
Bundle Size Analysis (Sentry): |
Explanation of Change
The trial payment reminder only waited for
ONYXKEYS.MODALor a modal navigator. The required 2FA screen is a full-screen overlay, not a modal, so the reminder opened fromGlobalModalsand sat above Enable.The reminder now stays closed while required 2FA is active (
shouldShowRequire2FAPage) or while a 2FA setup screen is focused. Closing it for that reason does not dismiss it, so it can still appear after 2FA is completed. The manager reads navigation from the root navigation ref because it renders outsideNavigationContainer.Fixed Issues
$ #102576
PROPOSAL:
Tests
Offline tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, 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.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
Screen.Recording.2026-10-03.at.10.52.25.PM.mov
Screen.Recording.2026-10-03.at.10.40.44.PM.mov
Android: mWeb Chrome
Screen.Recording.2026-10-03.at.10.52.25.PM.mov
WhatsApp.Video.2026-10-03.at.23.15.14.mp4
iOS: Native
Screen.Recording.2026-10-03.at.10.50.53.PM.mov
Screen.Recording.2026-10-03.at.10.26.24.PM.mov
iOS: mWeb Safari
Screen.Recording.2026-10-03.at.10.49.57.PM.mov
Screen.Recording.2026-10-03.at.10.30.08.PM.mov
MacOS: Chrome / Safari
Screen.Recording.2026-10-03.at.10.56.01.PM.mov
Screen.Recording.2026-10-03.at.10.09.30.PM.mov