-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.tsx
41 lines (37 loc) · 1.35 KB
/
App.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import {Suspense, useEffect} from 'react';
import {QueryClient, QueryClientProvider} from 'react-query';
import {SafeAreaProvider} from 'react-native-safe-area-context';
import SplashScreen from 'react-native-splash-screen';
import {ThemeProvider} from '@rneui/themed';
import RootNavigation from './src/navigation/RootNavigation';
import './src/i18n';
import ErrorBoundary from './src/components/ErrorHandler/ErrorHandler';
import {SpinnerProvider} from './src/context/spinner/spinnerContext';
import Spinner from './src/components/Spinner';
import {GlobalContextProvider} from './src/context/global/globalContext';
import theme from './src/styles/theme';
const queryClient = new QueryClient();
const App = () => {
useEffect(() => {
SplashScreen.hide();
}, []);
return (
<SafeAreaProvider>
<ErrorBoundary>
<QueryClientProvider client={queryClient}>
<GlobalContextProvider>
<ThemeProvider theme={theme}>
<SpinnerProvider>
{/* Revisit after migrating to react 18 */}
<Suspense fallback={<Spinner fullScreeMode />}>
<RootNavigation />
</Suspense>
</SpinnerProvider>
</ThemeProvider>
</GlobalContextProvider>
</QueryClientProvider>
</ErrorBoundary>
</SafeAreaProvider>
);
};
export default App;