-
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
Limit report routes in the customStackNavigator #30279
Limit report routes in the customStackNavigator #30279
Conversation
Creating a test build |
I am not sure unmount works correctly. ReportScreen's useEffect cleanup function is never called after navigating 5+ reports. |
Going to give the web build a try for several days. |
I am having this issue in the adhoc build when trying to send money the chat pops back to the money input, doesn't seem to be happening in staging, same for the requesting money flow. WhatsApp.Video.2023-10-25.at.16.25.36.mp4 |
Hey @situchan, I updated the PR to remove the freeze wrapper for central pane routes on the web. Could you please check again if the problem with the useEffect cleanup function still exists? |
@rlinoz I will check that but that's weeeird. I see that you tried this on the native platform and this PR should only affect web. Maybe that's some regression that is also present on the main. |
Maybe pull main and re-generate QR build to apply latest fixes from main |
Not sure how to regenerate QR build but I merged latest main |
Only engineer can generate. Let's wait for @mountiny |
New build triggered https://github.com/Expensify/App/actions/runs/6644835502 |
I tested it on the latest main and the problem exists there as well |
@situchan good news! I started looking for a solution to this problem and it looks like somebody fixed that on an even newer main. |
Nice. Do you know fixed PR? |
@situchan You mean which PR fixed this problem? No idea 😄 But this PR is updated with the latest main |
Running build with latest updates |
Running another build @situchan will you be able to give it another test once done please, thanks! |
🧪🧪 Use the links below to test this build in android and iOS. Happy testing! 🧪🧪 |
@situchan could you please prioritize this one? It really promising improvement, I have been using the build from this one for a while and the performance was great over time, I did not notice degradation as with staging version when many reports were opened. Thanks! |
sure. tomorrow the first thing |
Found the case when Report screen doesn't show after resize bug.movAlso reproduced on main so not blocker. |
I think this is knwown bug |
Reviewer Checklist
Screenshots/VideosAndroid: Nativeandroid.movAndroid: mWeb Chromemchrome.moviOS: Nativeios-log.moviOS: mWeb Safarimsafari.movMacOS: Chrome / Safariweb.movweb-resized.movMacOS: Desktopdesktop.mov |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
✋ 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/mountiny in version: 1.3.96-0 🚀
|
🚀 Deployed to production by https://github.com/puneetlath in version: 1.3.96-15 🚀
|
🚀 Deployed to production by https://github.com/puneetlath in version: 1.3.97-7 🚀
|
Details
Limit report routes in the customStackNavigator. This will improve performance because now only the last three report screens are mounted. Why three and not one? We need at least one more route for animations. Three sounds like safe options in case of navigating back quickly.
Fixed Issues
$ #27651
Tests
Test navigation flows in the app, deeplinks etc
Test comparing performance on high traffic account when you navigate through 50+ unique reports on desktop, then naivgate to RHP/ search notice if there is an improvement compared to main
Offline tests
Same as tests
QA Steps
Same as tests
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodWaiting for Copy
label for a copy review on the original GH to get the correct copy.STYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)/** comment above it */
this
properly so there are no scoping issues (i.e. foronClick={this.submit}
the methodthis.submit
should be bound tothis
in the constructor)this
are necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);
ifthis.submit
is never passed to a component event handler likeonClick
)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Android: Native
🤷 I am waiting for the build and my dinner is getting cold so I will update it tomorrow.
BTW these changes shouldn't affect mobile.
Android: mWeb Chrome
androidWeb.mov
iOS: Native
ios.mov
iOS: mWeb Safari
iosWeb.mov
MacOS: Chrome / Safari
web.mov
MacOS: Desktop
desktop.mov