mirror of
https://github.com/urosran/cally.git
synced 2025-07-16 01:56:16 +00:00
59 lines
1.8 KiB
TypeScript
59 lines
1.8 KiB
TypeScript
import {DarkTheme, DefaultTheme, ThemeProvider} from '@react-navigation/native';
|
|
import {useFonts} from 'expo-font';
|
|
import {Stack} from 'expo-router';
|
|
import * as SplashScreen from 'expo-splash-screen';
|
|
import {useEffect} from 'react';
|
|
import 'react-native-reanimated';
|
|
|
|
import {useColorScheme} from '@/hooks/useColorScheme';
|
|
import {AuthContextProvider} from "@/contexts/AuthContext";
|
|
|
|
import functions from "@react-native-firebase/functions";
|
|
import firestore from "@react-native-firebase/firestore";
|
|
import auth from "@react-native-firebase/auth";
|
|
import {QueryClient, QueryClientProvider} from "react-query";
|
|
import {Toast} from "react-native-ui-lib";
|
|
|
|
// Prevent the splash screen from auto-hiding before asset loading is complete.
|
|
SplashScreen.preventAutoHideAsync();
|
|
|
|
const queryClient = new QueryClient()
|
|
|
|
|
|
if (__DEV__) {
|
|
functions().useEmulator('localhost', 5001);
|
|
firestore().useEmulator("localhost", 5471);
|
|
auth().useEmulator("http://localhost:9099");
|
|
}
|
|
|
|
export default function RootLayout() {
|
|
const [loaded] = useFonts({
|
|
SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),
|
|
});
|
|
|
|
useEffect(() => {
|
|
if (loaded) {
|
|
SplashScreen.hideAsync();
|
|
}
|
|
}, [loaded]);
|
|
|
|
if (!loaded) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<QueryClientProvider client={queryClient}>
|
|
<AuthContextProvider>
|
|
<ThemeProvider value={DefaultTheme}>
|
|
<Stack>
|
|
<Stack.Screen name="(auth)" options={{headerShown: false}}/>
|
|
<Stack.Screen name="(unauth)" options={{headerShown: false}}/>
|
|
<Stack.Screen name="+not-found"/>
|
|
</Stack>
|
|
<Toast />
|
|
</ThemeProvider>
|
|
</AuthContextProvider>
|
|
</QueryClientProvider>
|
|
);
|
|
}
|