@@ -70,47 +70,57 @@ function App() {
7070 < InitialURLContextProvider >
7171 < HybridAppHandler />
7272 < GestureHandlerRootView style = { fill } >
73- < ComposeProviders
74- components = { [
75- OnyxListItemProvider ,
76- ThemeProvider ,
77- ThemeStylesProvider ,
78- ThemeIllustrationsProvider ,
79- SafeAreaProvider ,
80- HTMLEngineProvider ,
81- PortalProvider ,
82- SafeArea ,
83- LocaleContextProvider ,
84- PopoverContextProvider ,
85- CurrentReportIDContextProvider ,
86- ScrollOffsetContextProvider ,
87- AttachmentModalContextProvider ,
88- PickerStateProvider ,
89- EnvironmentProvider ,
90- CustomStatusBarAndBackgroundContextProvider ,
91- ActiveElementRoleProvider ,
92- ActionSheetAwareScrollViewProvider ,
93- PlaybackContextProvider ,
94- FullScreenContextProvider ,
95- VolumeContextProvider ,
96- VideoPopoverMenuContextProvider ,
97- KeyboardProvider ,
98- KeyboardStateProvider ,
99- SearchRouterContextProvider ,
100- ProductTrainingContextProvider ,
101- InputBlurContextProvider ,
102- FullScreenBlockingViewContextProvider ,
103- FullScreenLoaderContextProvider ,
104- ] }
73+ { /* Initialize metrics early to ensure the UI renders even when NewDot is hidden.
74+ This is necessary for iOS HybridApp's SignInPage to appear correctly without the bootsplash.
75+ See: https://github.com/Expensify/App/pull/65178#issuecomment-3139026551
76+ */ }
77+ < SafeAreaProvider
78+ initialMetrics = { {
79+ insets : { top : 0 , right : 0 , bottom : 0 , left : 0 } ,
80+ frame : { x : 0 , y : 0 , width : 0 , height : 0 } ,
81+ } }
10582 >
106- < CustomStatusBarAndBackground />
107- < ErrorBoundary errorMessage = "NewExpensify crash caught by error boundary" >
108- < ColorSchemeWrapper >
109- < Expensify />
110- </ ColorSchemeWrapper >
111- </ ErrorBoundary >
112- < NavigationBar />
113- </ ComposeProviders >
83+ < ComposeProviders
84+ components = { [
85+ OnyxListItemProvider ,
86+ ThemeProvider ,
87+ ThemeStylesProvider ,
88+ ThemeIllustrationsProvider ,
89+ HTMLEngineProvider ,
90+ PortalProvider ,
91+ SafeArea ,
92+ LocaleContextProvider ,
93+ PopoverContextProvider ,
94+ CurrentReportIDContextProvider ,
95+ ScrollOffsetContextProvider ,
96+ AttachmentModalContextProvider ,
97+ PickerStateProvider ,
98+ EnvironmentProvider ,
99+ CustomStatusBarAndBackgroundContextProvider ,
100+ ActiveElementRoleProvider ,
101+ ActionSheetAwareScrollViewProvider ,
102+ PlaybackContextProvider ,
103+ FullScreenContextProvider ,
104+ VolumeContextProvider ,
105+ VideoPopoverMenuContextProvider ,
106+ KeyboardProvider ,
107+ KeyboardStateProvider ,
108+ SearchRouterContextProvider ,
109+ ProductTrainingContextProvider ,
110+ InputBlurContextProvider ,
111+ FullScreenBlockingViewContextProvider ,
112+ FullScreenLoaderContextProvider ,
113+ ] }
114+ >
115+ < CustomStatusBarAndBackground />
116+ < ErrorBoundary errorMessage = "NewExpensify crash caught by error boundary" >
117+ < ColorSchemeWrapper >
118+ < Expensify />
119+ </ ColorSchemeWrapper >
120+ </ ErrorBoundary >
121+ < NavigationBar />
122+ </ ComposeProviders >
123+ </ SafeAreaProvider >
114124 </ GestureHandlerRootView >
115125 </ InitialURLContextProvider >
116126 </ SplashScreenStateContextProvider >
0 commit comments