Improve HybridApp initialProps#61912
Conversation
| return null; | ||
| } | ||
|
|
||
| signInAfterTransitionFromOldDot(hybridAppSettings).then(() => { |
There was a problem hiding this comment.
Hmmm this could be kept in useEffect as well
There was a problem hiding this comment.
I'm not so sure because I remember that sometimes url so as hybridAppSettings were undefined (early in the app initialization) and it's safer to make this code rerunable
| }); | ||
| } | ||
|
|
||
| function HybridAppSignIn({url, hybridAppSettings}: AppProps) { |
There was a problem hiding this comment.
What about different name? It also has a listener that triggers on every url event.
What about HybridAppUrlHandler or HybridAppRouter?
Btw maybe we should perform an early-return in useEffect to make sure that we don't use it on Standalone NewDot
There was a problem hiding this comment.
We won't use it on standalone ND because we keep it behind CONFIG.IS_HYBRID_APP in App.tsx
|
@mjasikowski 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] |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppUploading Screen Recording 2025-05-29 at 12.20.47 PM.mov… Android: mWeb ChromeScreen.Recording.2025-05-29.at.12.20.12.PM.moviOS: HybridAppScreen.Recording.2025-05-29.at.12.16.07.PM.movScreen.Recording.2025-05-29.at.12.18.07.PM.moviOS: mWeb SafariScreen.Recording.2025-05-29.at.12.19.36.PM.movMacOS: Chrome / SafariScreen.Recording.2025-05-29.at.12.10.12.PM.movMacOS: DesktopScreen.Recording.2025-05-29.at.12.10.55.PM.mov |
|
@war-in this is my first time working on PR which refers to mobile-expensify repo as well!, Are the testing steps different for this PR? do i need to checkout to https://github.com/Expensify/Mobile-Expensify/pull/13568 in the mobile-expensify sub-folder and checkout to this PR in the App repo? A brief overview for testing would also help 😄 |
mjasikowski
left a comment
There was a problem hiding this comment.
Other than the displayName oopsie that @allgandalf has found, it looks great!
@allgandalf Yes! You should checkout the submodule too and then just follow the testing steps
when I wrote |
|
✋ 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/mjasikowski in version: 9.1.54-0 🚀
|
|
🚀 Deployed to production by https://github.com/roryabraham in version: 9.1.54-7 🚀
|
Explanation of Change
This PR moves the HybridApp sign-in logic from
InitialURLContextProviderto a separate component.We also no longer send
urlupdates (deeplinks, shortcuts) in the App initial properties but use React Native Linking module to do so. That way, we can simplify an OD patch and split the logicFixed Issues
$ #62857
PROPOSAL:
MOBILE-EXPENSIFY: https://github.com/Expensify/Mobile-Expensify/pull/13568
Tests
Offline tests
QA Steps
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
init.prosp.-.android.mov
Android: mWeb Chrome
init.props.-.android.web.mov
iOS: Native
ios.native.mov
iOS: mWeb Safari
ios.web.mov
MacOS: Chrome / Safari
init.props.-.web.mov
MacOS: Desktop
init.props.-.desktop.mov