Fix navigating between CentralPane screens#44444
Conversation
|
@hoangzinh Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
Gonna reassign C+ since this is urgent |
|
Reviewing now 🔁 |
Reviewer Checklist
Screenshots/VideosAndroid: NativeScreen.Recording.2024-06-27.at.1.39.36.AM.movScreen.Recording.2024-06-27.at.1.36.23.AM.movAndroid: mWeb ChromeScreen.Recording.2024-06-27.at.1.43.57.AM.movScreen.Recording.2024-06-27.at.1.45.45.AM.moviOS: NativeScreen.Recording.2024-06-27.at.1.30.28.AM.movScreen.Recording.2024-06-27.at.1.32.22.AM.moviOS: mWeb SafariScreen.Recording.2024-06-27.at.1.46.44.AM.movMacOS: Chrome / SafariScreen.Recording.2024-06-27.at.1.27.15.AM.movMacOS: DesktopScreen.Recording.2024-06-27.at.1.28.41.AM.mov |
| // If action type is different than NAVIGATE we can't change it to the PUSH safely | ||
| if (action?.type === CONST.NAVIGATION.ACTION_TYPE.NAVIGATE) { | ||
| const actionParams: ActionPayloadParams = action.payload.params; | ||
| const actionPayloadParams: ActionPayloadParams = action.payload.params; |
There was a problem hiding this comment.
Not a blocker but i think we should instead use action?.payload?.params to avoid any kind of crash(IDK if ever the params would be undefined but better to have), as this is related to deploy blocker i won't focus on this much though, we can come up with a follow up PR for this @luacmartins @WojtekBoman
allgandalf
left a comment
There was a problem hiding this comment.
Tests well on all platforms, other then the changes i suggested above (NAB), this LGTM!
Pr reviewer check list still checks for this [comment](https://github.com//pull/44444#issuecomment-2191910248) as @hoangzinh posted their checklist above, i think we can merge this anyway
|
|
I deleted their checklist |
There was a problem hiding this comment.
Approving again for the checklist check to run again, thanks @luacmartins
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
…out-central-pane Fix navigating between CentralPane screens (cherry picked from commit f757005)
|
🚀 Cherry-picked to staging by https://github.com/luacmartins in version: 9.0.2-1 🚀
@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes. |
|
🚀 Deployed to production by https://github.com/jasperhuangg in version: 9.0.3-7 🚀
|
|
🚀 Deployed to production by https://github.com/Julesssss in version: 9.0.5-13 🚀
|

Details
This PR fixes issues with navigating to CentralPane screens, also includes one performance improvement in
NavigationUtils.ts, nowCENTRAL_PANE_SCREEN_NAMESis stored as a Set instead of an array.App behaviour after fixing:
iOS - Hold - Back button on transaction thread returns to Hold - Reason page after holding it
Screen.Recording.2024-06-26.at.13.04.56.mov
Search - Workspace switcher on Search is not synchronized with workspace switcher in Inbox
Screen.Recording.2024-06-26.at.13.28.14.mov
Fixed Issues
$ #44423
$ #44433
PROPOSAL:
Tests
iOS - Hold - Back button on transaction thread returns to Hold - Reason page after holding it
Search - Workspace switcher on Search is not synchronized with workspace switcher in Inbox
Offline tests
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop