Fix/70514 - Add payment card RHP opens on the Profile page instead of Subscription#74772
Fix/70514 - Add payment card RHP opens on the Profile page instead of Subscription#74772Julesssss merged 8 commits intoExpensify:mainfrom
Conversation
|
@hoangzinh 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] |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
Hi @hoangzinh, PR #71878 has been reverted, so I've submitted this follow-up PR to address the original issue. When you have a moment, please take a look! |
trjExpensify
left a comment
There was a problem hiding this comment.
Makes sense to navigate the owner to subscription page and open the Add Payment Card modal if on web/desktop. 👍
|
Hi @trjExpensify Can you take a look at this comment when you have a moment? TY |
|
@trjExpensify, when you have a moment, can you give a thought on this again so we can move forward with this PR? TY |
|
@trjExpensify another comment that needs your attention here #74772 (comment) |
hoangzinh
left a comment
There was a problem hiding this comment.
All good. Just a small suggestion.
| matchingFullScreenRoute && | ||
| lastFullScreenRoute && | ||
| (matchingFullScreenRoute.name !== lastFullScreenRoute.name || | ||
| (newFocusedRoute.name === SCREENS.SETTINGS.SUBSCRIPTION.ADD_PAYMENT_CARD && lastRouteInLastFullScreenRoute?.name !== SCREENS.SETTINGS.SUBSCRIPTION.ROOT)) |
There was a problem hiding this comment.
Should we move this into a function and add comments explaining why the SUBSCRIPTION screen needs to be treated as an exception here?
There was a problem hiding this comment.
Yes. I have just refactored that a bit. If you find any comments unclear, feel free to request changes from me.
There was a problem hiding this comment.
I mean just "newFocusedRoute?.name === SCREENS.SETTINGS.SUBSCRIPTION.ADD_PAYMENT_CARD && lastRouteInLastFullScreenRoute?.name !== SCREENS.SETTINGS.SUBSCRIPTION.ROOT" only. But let me review your current approach
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2025-12-20.at.14.21.21.android.movAndroid: mWeb ChromeScreen.Recording.2025-12-20.at.14.18.41.android.chrome.moviOS: HybridAppScreen.Recording.2025-12-20.at.14.37.57.moviOS: mWeb SafariScreen.Recording.2025-12-20.at.14.27.53.ios.safari.movMacOS: Chrome / SafariScreen.Recording.2025-12-20.at.14.11.58.web.mov |
|
We did not find an internal engineer to review this PR, trying to assign a random engineer to #70514 as well as to this PR... Please reach out for help on Slack if no one gets assigned! |
|
@Julesssss, it appears that we're waiting for your next review here. |
|
Changes look good. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/Julesssss in version: 9.3.1-0 🚀
|
|
🚀 Deployed to production by https://github.com/francoisl in version: 9.3.1-1 🚀
|
Explanation of Change
Follow-up #71878
When a user's trial has ended, the workspace restricted action page will be shown during the expense submission flow within a workspace. This PR ensures that clicking "Add payment card" on the workspace restricted action page will navigate the user to the Subscription tab in Settings
Fixed Issues
$ #70514
PROPOSAL: #70514 (comment)
Tests
Same as QA Steps
Offline tests
Same as QA Steps
QA Steps
Test 1
Onyx.merge('nvp_private_lastDayFreeTrial', '2025-09-12 01:01:00');(change the date to your current date for the above snippet)
Onyx.merge('nvp_private_amountOwed', 1000);Onyx.merge('nvp_private_billingGracePeriodEnd', 1719792000);They will end the free trial and leave the user in a "expired" state.
Test 2
Precondition: User has assigned a physical card that is ready to be activated (or log in as applausetester+061102kh@applause.expensifail.com)
Test 3
Precondition: User has assigned themselves a Well Fargos card (0000).
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
Test 1:
Android: Native
android.native.mp4
Android: mWeb Chrome
android.mweb.mp4
iOS: Native
ios.native.mp4
iOS: mWeb Safari
ios.mweb.mp4
MacOS: Chrome / Safari
mac.safari.mp4
MacOS: Desktop
mac.desktop.mp4
Test 2:
test2.mp4
Test 3:
test3.mp4