-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HOLD for payment 2024-02-26] [$500] [Wave 8] [Ideal Nav] Refreshing the browser on a Workspace settings page causes double navigation #35614
Comments
Triggered auto assignment to @greg-schroeder ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.After the back button is pressed, you're still on the Reimbursements page. You need to click the back button once more to go back to the Settings page. What is the root cause of that problem?When we refresh the page, we navigate to the page by deep link here App/src/libs/actions/Report.ts Line 2164 in d9fd412
In this case, we are setting the action type as App/src/libs/Navigation/linkTo.ts Line 179 in d9fd412
What changes do you think we should make in order to solve the problem?We should update
App/src/libs/Navigation/linkTo.ts Line 179 in d9fd412
What alternative solutions did you explore? (Optional)NA |
Job added to Upwork: https://www.upwork.com/jobs/~010bd1212900e21158 |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @ntdiary ( |
@ntdiary do you mind reviewing the proposal above? thanks! |
My proposal here can solve this too. |
@bernhardoj could you double post the solution here if you can? and if you can explain how your solution solves both issues at the same time, that would be super helpful 🙇 |
ProposalPlease re-state the problem that we are trying to solve in this issue.The app navigates to the reimbursement page twice when refreshing the web, so we need to press back twice to close it. What is the root cause of that problem?When we open a URL on the web, it will open the corresponding page and at the same time call Report.openReportFromDeeplink which will call an extra navigation call with a PUSH type. App/src/libs/actions/Report.ts Line 2164 in 3ab4e6e
We already have a logic to not apply the PUSH action if the route destination is the active route. App/src/libs/Navigation/linkTo.ts Lines 246 to 248 in 3ab4e6e
But after the ideal nav PR, we modify this logic to change the action type to PUSH if the destination is a central pane navigator (which is true for reimbursement page) but the current central pane screen is not a report screen, so we always push another reimbursement page to the stack (or any other central pane route) App/src/libs/Navigation/linkTo.ts Lines 162 to 179 in 3ab4e6e
What changes do you think we should make in order to solve the problem?We should check whether the route destination is the same as the current central pane route instead of checking whether it's a report screen or not. If it's the same, then don't push it.
This will solve #35692 too with the same root cause explained there |
@ntdiary could you review the proposals when you have time 🙇 ? |
Ah, I'm terribly sorry, I missed this issue, will review it as soon as possible. |
So far, I think @bernhardoj's proposal is acceptable, but I'm not entirely sure if there are some reasons or guidelines supporting the current condition (i.e. |
I don't think there is a mention about the condition you mentioned in the doc. I'll ask @adamgrzybowski if there was any reason that the condition was modified to check against the report screen instead agains the currently active screen. |
@ntdiary I think this was just overlooked in the process. You are right we should to check if the destination is the same as current topmost central pane. We still need to have a separate check for Report route though. We can push multiple different report screens and in that case we need to compare reportID. |
makes sense. @ntdiary if you still think @bernhardoj's proposal is the best, please post the approval comment 🙇 |
Sure, I think it's fine to move forward with @bernhardoj's proposal. :) 🎀 👀 🎀 C+ reviewed |
Current assignee @hayata-suenaga is eligible for the choreEngineerContributorManagement assigner, not assigning anyone new. |
📣 @ntdiary 🎉 An offer has been automatically sent to your Upwork account for the Reviewer role 🎉 Thanks for contributing to the Expensify app! |
📣 @bernhardoj 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app! Offer link |
PR is ready cc: @ntdiary |
PR Merged and deployed to staging. Awaiting deploy to prod |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.42-5 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2024-02-26. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
Paid @bernhardoj @ntdiary can you accept the job offer in Upwork and then complete the checklist? Thanks! |
Regression test steps:
BTW, I'm applying to switch to NewDot for payment, so it might be better to hold the payment temporarily. :) |
ahh, okay, works for me! |
In that case the payment summary would be: @ntdiary as C+ $500 - manual request |
Given you'll be making a ND manual request and regression test is filed, closing! If you end up needing to be paid through Upwork, please reopen this. |
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:
Reproducible in staging?:
Reproducible in production?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by:
Slack conversation:
Action Performed:
Expected Result:
The back button should take you to the Workspace Settings page
Actual Result:
After the back button is pressed, you're still on the Reimbursements page. You need to click the back button once more to go back to the Settings page.
Workaround:
N/A
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
video -> #33280 (comment)
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: