-
Notifications
You must be signed in to change notification settings - Fork 3k
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
[$1000] Android - Workspace - User is returned to 'Hmm... it's not here' page from workspace chat #26881
Comments
Triggered auto assignment to @CortneyOfstad ( |
Bug0 Triage Checklist (Main S/O)
|
Job added to Upwork: https://www.upwork.com/jobs/~0148a4f4b16e9811e6 |
Current assignee @CortneyOfstad is eligible for the External assigner, not assigning anyone new. |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @abdulrahuman5196 ( |
|
ProposalPlease re-state the problem that we are trying to solve in this issue.Android - Workspace - User is returned to 'Hmm... it's not here' page from workspace chat What is the root cause of that problem?We goBack to the sidebar screen with App/src/pages/home/ReportScreen.js Line 165 in 1eafc7d
In goBack function, we only do this action if both shouldPopToTop and shouldPopAllStateOnUP are true App/src/libs/Navigation/Navigation.js Lines 105 to 111 in 1eafc7d
But shouldPopAllStateOnUP is only true when we don't start on the small screen the screen size is changedApp/src/libs/Navigation/NavigationRoot.js Lines 60 to 72 in 1eafc7d
That makes back button in Header doesn't work properly What changes do you think we should make in order to solve the problem?We should update the condition here to clear all previous pages in the stack navigator if
App/src/libs/Navigation/Navigation.js Lines 105 to 111 in 1eafc7d
What alternative solutions did you explore? (Optional)Before we call goBack here we can call App/src/pages/home/ReportScreen.js Line 165 in 1eafc7d
|
ProposalPlease re-state the problem that we are trying to solve in this issue.Open r/saastr by deep link will open the demo chat but when going back, a not found page will be shown. What is the root cause of that problem?When we deep link to r/saastr, it will open a chat/report screen with the report ID of saastr. Because the report ID is invalid, we will have the not found page in the navigation stack. Navigation stack: [LHN, Not found chat] In addition to the not found chat, we will also be navigated to the demo chat (SAASTR). This is because inside App/src/libs/actions/DemoActions.js Lines 67 to 86 in 1eafc7d
In our case, it is true because r/saastr ends with SAASTR which sets the App/src/libs/Navigation/AppNavigator/AuthScreens.js Lines 166 to 171 in c2dab6e
Navigation stack: [LHN, Not found chat, Demo chat (SAASTR)] So, when we go back, we will arrive on the not found chat. What changes do you think we should make in order to solve the problem?We shouldn't check whether the deep link URL ends with the demo route (SAASTR/SBE) because we can put anything in the URL and put SAASTR/SBE (e.g., /abcdefghsaastr) at the end of the link and our logic will think we want to navigate to demo chat. To have a better check of the route, we can first extract the path/route from the full deep link URL (using From: new-expensify://r/saastr Then, check if the route/path is equal to either SAASTR or SBE. DemoActions
|
@mountiny Is this issue like a deploy blocker or something priority? |
@abdulrahuman5196 not a blocker, but would be good to get it merged tomorrow |
It seems even in the video, NotFound page comes first then comes the Saastr page. On @dukenv0307 's proposal here, it doesn't have information on why the NotFound page comes and stays in navigation on the first place, which I would like to investigate. The proposal targets to fix not showing the page on back press. @bernhardoj You root cause is good. But the navigation is
And I am unable to understand the solution properly. Kindly do let me know if I am missing something |
@abdulrahuman5196 The NotFoundPage comes first because the URL of the sbe and saastr report is incorrect. The URL '/r/sbe' is the URL of the ReportScreen so it knows |
Oh, you are right, I didn't notice this one. After doing some investigation, I found that the navigation to the demo page by deep link failed because the navigation container was not ready yet. App/src/libs/Navigation/AppNavigator/AuthScreens.js Lines 166 to 171 in d60c13e
If it's not ready, it's stored in a pending route. However, the pending route only stores the App/src/libs/Navigation/Navigation.js Line 83 in d60c13e
So, when the navigation is ready, we navigate to the pending route with no We still have the not found report in the stack because doing a deep link to a report screen will navigate it twice. So, the first not found page is replaced by demo chat and the second one is appended to the stack at the top. @abdulrahuman5196 Updated my solution to include more explanation |
ProposalPlease re-state the problem that we are trying to solve in this issue.User is returned to ‘Hmm… Its not here’ page from workspace chat when app is launched via deep link staging.new.expensify.com/r/saastr and swiped back. What is the root cause of that problem?The root cause of the problem is that when the code reaches at this location the demo chat is the immediately previous one in navigation stack which has no chat page. And, hence the problem. What changes do you think we should make in order to solve the problem?To solve the problem, we need to replace the demo chat with the demo workspace chat report. We can do this using FORCED_UP by replacing the code here like this:
What alternative solutions did you explore? (Optional) |
Got it. @dukenv0307 I understand this. But I would like to fix the issue of NotFoundPage itself. Like NotFound page itself should not become visible at first place. |
@bernhardoj
We already have a PR for that issue. I tried your proposal alongside with its fix. But still I am seeing this issue. |
Yes, that's supposed to be the expected result. When the user goes to r/saastr, a not found page will be shown. The correct demo page is /saastr or /sbe. Currently, it pushes both not found and demo chat. |
Sorry I don't understand this. Could you provide more information. @bernhardoj |
@abdulrahuman5196 As @bernhardoj mentioned, because the URL
|
Got it @dukenv0307 Thank you. I was under the impression, deeplink urls ending with @mountiny Could you kindly clarify this? In the video we have one NotFoundPage followed by the saastr page opening for |
Anyways just to note: @rojiphil 's solution here #26881 (comment) is working fine. Like it opens the |
ProposalUpdated |
@abdulrahuman5196 no the |
@mvtglobally @izarutskaya @kavimuru the links for the conferences do not have the |
@mountiny If we visit with the correct link |
@mountiny yep, it works well if we visit |
These links will be removed after the conferences and they wont be used so i am hesitant if this is needed, basically this is a wrong link noone would normally encounter from QR code or from a link shared somewhere, we dont have to care about this. |
I am sorry for wasting your time on this one, this was missed on QA and my side that I havent checked the report better, sorry |
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Action Performed:
Expected Result:
User is returned to LHN.
Actual Result:
User is returned to 'Hmm... it's not here' page.
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Version Number: 1.3.64-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:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Bug6190352_26844_Android.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation: @
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: