refactor: Split up ScreenWrapper into separate reusable components#64229
refactor: Split up ScreenWrapper into separate reusable components#64229deetergp merged 37 commits intoExpensify:mainfrom
ScreenWrapper into separate reusable components#64229Conversation
…acing' into @chrispader/fix-bottom-safe-area-padding-in-modals
…acing' into @chrispader/fix-bottom-safe-area-padding-in-modals
|
Adding @shubham1206agra, the C+ from the GH, for the initial review. |
|
@shubham1206agra Will you be able to review this soon? |
|
@deetergp @shubham1206agra i'm going to be mostly OOO from 06/29-08/01 with ~5-10h availability per week, so it would be great if we could get this merged until then! 🙌🏼 I'm available for any fixes and merged conflicts during this week! |
|
Ok |
@chrispader App immediately crashes on clicking of search icon. |
@shubham1206agra thanks for the catch! Fixed 🙌🏼 |
@chrispader Some pages have double padding in offline indicator. |
@shubham1206agra just fixed this! |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2025-06-26.at.11.31.15.AM.movAndroid: mWeb ChromeScreen.Recording.2025-06-26.at.9.53.34.AM.moviOS: HybridAppScreen.Recording.2025-06-26.at.11.10.17.AM.moviOS: mWeb SafariScreen.Recording.2025-06-25.at.7.10.25.PM.movMacOS: Chrome / SafariScreen.Recording.2025-06-25.at.6.56.37.PM.movMacOS: DesktopScreen.Recording.2025-06-26.at.10.40.46.AM.mov |
|
@deetergp can we merge this? 🙌🏼 |
|
✋ 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/deetergp in version: 9.1.72-0 🚀
|
1 similar comment
|
🚀 Deployed to staging by https://github.com/deetergp in version: 9.1.72-0 🚀
|
|
🚀 Deployed to production by https://github.com/puneetlath in version: 9.1.72-10 🚀
|
| } | ||
| ScreenWrapperContainer.displayName = 'ScreenWrapperContainer'; | ||
|
|
||
| export default React.memo(ScreenWrapperContainer); |
There was a problem hiding this comment.
Coming from: #65123, we should use forwardRef here



@shubham1206agra @mountiny
Explanation of Change
To fix an issue in
SearchRouterModali took the chance to holistically improve theScreenWrappercomponent by refactoring and extracting some of the logic responsible for applying safe area paddings (ScreenWrapperContainer) and the offline indicator code (ScreenWrapperOfflineIndicators).The
ScreenWrapperContainercomponent can therefore be re-used to apply bottom safe are padding on screens where noScreenWrapperis used, e.g. inSearchRouterModal.Fixed Issues
$ #58955
PROPOSAL: #58955 (comment)
Tests
Offline tests
None needed.
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
Same as in Tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)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
XRecorder_20250616_01.mp4
iOS: Native
Simulator.Screen.Recording.-.iPhone.16.Pro.-.2025-06-16.at.18.02.25.mp4