[HOLD for payment 2024-12-07] [$250] Pay Someone - Wallet page opens when refreshing in "Validate your account" page
If you havenβt already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Version Number: 9.0.45-2 Reproducible in staging?: Y Reproducible in production?: Y If this was caught during regression testing, add the test name, ID and link from TestRail: N/A Email or phone of affected tester (no customers): [email protected] Issue reported by: Applause - internal Team
Action Performed:
- Go to staging.new.expensify.com
- Log in with a new Gmail account
- Complete the onboarding
- Open DM with any user
- Click + >. Pay someone
- Select currency in USD, enter amount and click Next
- Click Pay with Expensify
- Refresh the page
Expected Result:
Wallet page is not opened. DM chat is shown
Actual Result:
The DM chat page changes to Wallet page after refreshing in "Validate your account" page
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
- [ ] Android: Native
- [x] Android: mWeb Chrome
- [ ] iOS: Native
- [ ] iOS: mWeb Safari
- [x] MacOS: Chrome / Safari
- [x] MacOS: Desktop
Screenshots/Videos
Add any screenshot/video evidence
https://github.com/user-attachments/assets/2c314e63-0923-4717-b089-5256946e56c1
Upwork Automation - Do Not Edit
- Upwork Job URL: https://www.upwork.com/jobs/~021845915923804552896
- Upwork Job ID: 1845915923804552896
- Last Price Increase: 2024-10-21
- Automatic offers:
- alitoshmatov | Reviewer | 104631143
Issue Owner
Current Issue Owner: @slafortune
Triggered auto assignment to @slafortune (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.
@slafortune FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors
Edited by proposal-police: This proposal was edited at 2024-10-05 16:08:40 UTC.
Proposal
Please re-state the problem that we are trying to solve in this issue.
The DM chat page changes to Wallet page after refreshing in "Validate your account" page
What is the root cause of that problem?
- We are navigating to RHN
settings/wallet/verifyin:
https://github.com/Expensify/App/blob/99f280b0edae75ff59614a1c5e98c47b39800aa5/src/components/SettlementButton/index.tsx#L193
which will be mapped to wallet page.
What changes do you think we should make in order to solve the problem?
- We can create a new route for the
pages/settings/Wallet/VerifyAccountPage, can besettings/verifylike we did in there for categories page, there for tags page and there for wallet and expensify card page.
- In there, add:
VERIFY_ACCOUNT: {route: 'settings/verify', getRoute: (backTo?: string) => getUrlWithBackToParam('settings/verify', backTo)},
- In there, add:
VERIFY_ACCOUNT: {
VERIFY_ACCOUNT_ROOT: 'Verify_Account_Root,
},
- In there create new navigator:
const VerifyAccountModalStackNavigator = createModalStackNavigator({
[SCREENS.VERIFY_ACCOUNT_ROOT]: () => require<ReactComponentModule>('../../../../pages/settings/Wallet/VerifyAccountPage').default,
- In there add:
<Stack.Screen
name={SCREENS.RIGHT_MODAL.VERIFY_ACCOUNT}
component={ModalStackNavigators.VefiryAccountModalStackNavigator}
/>
- In there, add:
[SCREENS.RIGHT_MODAL.VERIFY_ACCOUNT]: {
screens: {
[SCREENS.VERIFY_ACCOUNT.VERIFY_ACCOUNT_ROOT]: ROUTES.VERIFY_ACCOUNT.route,
},
},
- In there, use:
Navigation.navigate(ROUTES.VERIFY_ACCOUNT.getRoute());
instead.
What alternative solutions did you explore? (Optional)
regression from https://github.com/Expensify/App/pull/50169 https://github.com/Expensify/App/issues/49523 @ikevin127 @cretadn22
IMO, I don't think this issue is a regression from that PR, as the issue is more of an improvement, and we can't reproduce the same behavior in production for comparison.
Proposal
Please re-state the problem that we are trying to solve in this issue.
Page behind RHP changes to wallet page after refresh while on the wallet verify account page.
What is the root cause of that problem?
By default, wallet verify account page is mapped to the wallet page. https://github.com/Expensify/App/blob/99f280b0edae75ff59614a1c5e98c47b39800aa5/src/libs/Navigation/linkingConfig/CENTRAL_PANE_TO_RHP_MAPPING.ts#L28-L40
So, refreshing it will show the matching route, that is the wallet page.
What changes do you think we should make in order to solve the problem?
We can pass backTo when opening the wallet verify account page, https://github.com/Expensify/App/blob/99f280b0edae75ff59614a1c5e98c47b39800aa5/src/components/SettlementButton/index.tsx#L193
Navigation.navigate(ROUTES.SETTINGS_WALLET_VERIFY_ACCOUNT.getRoute(Navigation.getActiveRoute()));
so it will be used as the matching screen. In our case, the backTo is the pay someone confirm page which will return a report screen as the matching screen. https://github.com/Expensify/App/blob/99f280b0edae75ff59614a1c5e98c47b39800aa5/src/libs/Navigation/linkingConfig/getAdaptedStateFromPath.ts#L112-L125
But there is currently another bug where the backTo as the matching screen doesn't work which should be handled here.
@slafortune Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!
@lanitochka17 Did you verify the account?
how did you refresh?
I'm not surprised that you land back on the wallet page - since you requested to pay someone but don't have anything to pay them with - you need to enter it.
Issue is still reproducible The account has not been verified.
https://github.com/user-attachments/assets/add3892b-a131-4370-8237-7a4180bada81
@slafortune Huh... This is 4 days overdue. Who can take care of this?
Job added to Upwork: https://www.upwork.com/jobs/~021845915923804552896
Triggered auto assignment to Contributor-plus team member for initial proposal review - @alitoshmatov (External)
@slafortune, @alitoshmatov Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!
@alitoshmatov did you have a chance to review the proposals?
@slafortune @alitoshmatov this issue was created 2 weeks ago. Are we close to approving a proposal? If not, what's blocking us from getting this issue assigned? Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks!
π£ It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? πΈ
@slafortune, @alitoshmatov Still overdue 6 days?! Let's take care of this!
@alitoshmatov bump - did you have a chance to review the proposals?
@slafortune, @alitoshmatov Now this issue is 8 days overdue. Are you sure this should be a Daily? Feel free to change it!
Thank you @truph01 and @bernhardoj for proposals. I think @bernhardoj 's proposal is much simpler and gets the job done rather than creating a new route.
Triggered auto assignment to @bondydaa, see https://stackoverflow.com/c/expensify/questions/7972 for more details.
π£ @alitoshmatov π An offer has been automatically sent to your Upwork account for the Reviewer role π Thanks for contributing to the Expensify app!
But there is currently another bug where the backTo as the matching screen doesn't work which should be handled https://github.com/Expensify/App/issues/50155.
it looks that issue is closed so has this been resolved already?
it looks that issue is closed so has this been resolved already?
Yes, that issue has been resolved.
PR is ready
cc: @alitoshmatov
Reviewing label has been removed, please complete the "BugZero Checklist".
The solution for this issue has been :rocket: deployed to production :rocket: in version 9.0.68-7 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:
- https://github.com/Expensify/App/pull/51630
If no regressions arise, payment will be issued on 2024-12-07. :confetti_ball:
For reference, here are some details about the assignees on this issue:
- @bernhardoj requires payment through NewDot Manual Requests
- @alitoshmatov requires payment automatic offer (Reviewer)
@alitoshmatov @slafortune @alitoshmatov The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]