You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[$1000] Blank page appears instead of Hmm... it's not here page #28183
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:
Which of our officially supported platforms is this issue occurring on?
Android / native
Android / Chrome
iOS / native
iOS / Safari
MacOS / Chrome / Safari
MacOS / Desktop
Version Number: 1.3.74-0 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
changed the title [-]Blank page appears instead of Hmm... it's not here page[/-][+][$500] Blank page appears instead of Hmm... it's not here page[/+]on Sep 25, 2023
Please re-state the problem that we are trying to solve in this issue.
If the user has the Details RHN open for a channel, and the user is removed from the workspace, then the RHN pane goes to black and does not show the "Hmm... it's not here" screen.
What is the root cause of that problem?
This is a result of an assumption made inside WithReportOrNotFound:
// If the content was shown but it's not anymore that means the report was deleted and we are probably navigating out of this screen.
The comment says "we are probably navigating out of this screen" but this is not the case. We have lost access to the report, but we do not have anything to cause us to navigate away. WithReportOrNotFound returns null (so that we don't show a glitchy transition) but since we're not navigating in this case, we just render a blank panel where the ReportDetailsPage used to be. This does not happen once the page is reloaded, because if WithReportOrNotFound has never successfully rendered the report then it correctly shows the NotFoundPage. This problem only occurs if we used to be able to render the report, but then lose that ability.
This bug was introduced here:
commit b2426a23b6b721a1073752c795974108ff7799f0
Author: Adam Grzybowski <adam.grzybowski@swmansion.com>
Date: Tue Aug 8 12:37:10 2023 +0200
fix glitching animation of NotFoundPage on transition
What changes do you think we should make in order to solve the problem?
I think it would be reasonable in this case to render the content that was previously shown. That way, if we are navigating away anyway, as the code assumes, then we would not switch to the NotFoundPage and we'd still avoid the glitchy transition. If we are not navigating then we'd stay on the current page, i.e. displaying stale content for a report that we have lost access to. The next time the user navigates, they will step to a screen that will render as NotFoundPage as normal. That seems like reasonable behavior to me, given how small a corner case this is.
My proposal is to save the props seen by WithReportOrNotFound in a ref, and in the case where we currently return null, instead return the WrappedComponent with those remembered props.
What alternative solutions did you explore? (Optional)
I considered adding a fallback route to WithReportOrNotFound, and making it so it navigates to the fallback route in this case. This would effectively mean all the /r/:reportID/* routes would navigate to /r/:reportID in this situation, and you'd see the NotFoundPage that way. The problem with this is you don't know whether some other part of the app is going to trigger a nav, so you could have two competing navigations that trigger at the same time. That seems like it could cause more problems than it solves.
Activity
[-]Blank page appears instead of Hmm... it's not here page[/-][+][$500] Blank page appears instead of Hmm... it's not here page[/+]melvin-bot commentedon Sep 25, 2023
Triggered auto assignment to @stephanieelliott (
Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.melvin-bot commentedon Sep 25, 2023
Job added to Upwork: https://www.upwork.com/jobs/~016233e1e785234a4a
melvin-bot commentedon Sep 25, 2023
Bug0 Triage Checklist (Main S/O)
Platformsin OP are ✅)melvin-bot commentedon Sep 25, 2023
Triggered auto assignment to @laurenreidexpensify (
External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.melvin-bot commentedon Sep 25, 2023
Triggered auto assignment to Contributor-plus team member for initial proposal review - @ntdiary (
External)ewanmellor commentedon Sep 25, 2023
Proposal
Please re-state the problem that we are trying to solve in this issue.
If the user has the Details RHN open for a channel, and the user is removed from the workspace, then the RHN pane goes to black and does not show the "Hmm... it's not here" screen.
What is the root cause of that problem?
This is a result of an assumption made inside
WithReportOrNotFound:App/src/pages/home/report/withReportOrNotFound.js
Line 55 in f5409e7
The comment says "we are probably navigating out of this screen" but this is not the case. We have lost access to the report, but we do not have anything to cause us to navigate away.
WithReportOrNotFoundreturns null (so that we don't show a glitchy transition) but since we're not navigating in this case, we just render a blank panel where theReportDetailsPageused to be. This does not happen once the page is reloaded, because ifWithReportOrNotFoundhas never successfully rendered the report then it correctly shows theNotFoundPage. This problem only occurs if we used to be able to render the report, but then lose that ability.This bug was introduced here:
What changes do you think we should make in order to solve the problem?
I think it would be reasonable in this case to render the content that was previously shown. That way, if we are navigating away anyway, as the code assumes, then we would not switch to the
NotFoundPageand we'd still avoid the glitchy transition. If we are not navigating then we'd stay on the current page, i.e. displaying stale content for a report that we have lost access to. The next time the user navigates, they will step to a screen that will render asNotFoundPageas normal. That seems like reasonable behavior to me, given how small a corner case this is.My proposal is to save the props seen by
WithReportOrNotFoundin a ref, and in the case where we currently return null, instead return theWrappedComponentwith those remembered props.What alternative solutions did you explore? (Optional)
I considered adding a fallback route to
WithReportOrNotFound, and making it so it navigates to the fallback route in this case. This would effectively mean all the/r/:reportID/*routes would navigate to/r/:reportIDin this situation, and you'd see theNotFoundPagethat way. The problem with this is you don't know whether some other part of the app is going to trigger a nav, so you could have two competing navigations that trigger at the same time. That seems like it could cause more problems than it solves.40 remaining items
melvin-bot commentedon Oct 18, 2023
📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸
melvin-bot commentedon Oct 20, 2023
@stephanieelliott, @fedirjh Whoops! This issue is 2 days overdue. Let's get this updated quick!
melvin-bot commentedon Oct 23, 2023
@stephanieelliott @fedirjh this issue is now 4 weeks old and preventing us from maintaining WAQ, can you:
Thanks!
melvin-bot commentedon Oct 23, 2023
Current assignee @fedirjh is eligible for the Internal assigner, not assigning anyone new.
dummy-1111 commentedon Oct 24, 2023
@fedirjh
Did you check the updated proposal?
kameshwarnayak commentedon Oct 24, 2023
I am not able to reproduce this in the latest master.
dummy-1111 commentedon Oct 24, 2023
Yeah, now it closes the RHN and navigates to the concierge page
fedirjh commentedon Oct 24, 2023
I couldn't replicate either. It appears that it has been resolved with this PR #26149.
CleanShot.2023-10-24.at.12.12.15.mp4
fedirjh commentedon Oct 24, 2023
@stephanieelliott Let’s close as fixed by another PR #26149.