tech-tracker-expo/app/_layout.tsx

40 lines
1.1 KiB
TypeScript
Raw Permalink Normal View History

2025-01-28 08:19:46 -06:00
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 { StatusBar } from 'expo-status-bar';
import { useEffect } from 'react';
import 'react-native-reanimated';
import { useColorScheme } from '@/hooks/useColorScheme';
// Prevent the splash screen from auto-hiding before asset loading is complete.
SplashScreen.preventAutoHideAsync();
const RootLayout = () => {
const scheme = useColorScheme() ?? 'dark';
2025-01-28 08:19:46 -06:00
const [loaded] = useFonts({
SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),
});
useEffect(() => {
if (loaded) {
SplashScreen.hideAsync();
}
}, [loaded]);
if (!loaded) {
return null;
}
return (
<ThemeProvider value={scheme === 'dark' ? DarkTheme : DefaultTheme}>
2025-01-28 08:19:46 -06:00
<Stack>
2025-01-28 08:45:02 -06:00
<Stack.Screen name='(tabs)' options={{ headerShown: false }} />
<Stack.Screen name='+not-found' />
2025-01-28 08:19:46 -06:00
</Stack>
2025-01-28 08:45:02 -06:00
<StatusBar style='auto' />
2025-01-28 08:19:46 -06:00
</ThemeProvider>
);
};
export default RootLayout;