37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { useEffect } from 'react';
|
|
import { Stack } from 'expo-router';
|
|
import * as SplashScreen from 'expo-splash-screen';
|
|
import { StatusBar } from 'expo-status-bar';
|
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
import { StyleSheet } from 'react-native';
|
|
import 'react-native-reanimated';
|
|
import { useDataStore } from '../src/stores/dataStore';
|
|
import { ConnectModal } from '../src/components/modals/ConnectModal';
|
|
import { useTheme } from '../src/design/tokens';
|
|
|
|
SplashScreen.preventAutoHideAsync();
|
|
|
|
export { ErrorBoundary } from 'expo-router';
|
|
|
|
export default function RootLayout() {
|
|
const init = useDataStore((s) => s.init);
|
|
const theme = useTheme();
|
|
|
|
useEffect(() => {
|
|
init().finally(() => SplashScreen.hideAsync());
|
|
}, []);
|
|
|
|
return (
|
|
<GestureHandlerRootView style={styles.root}>
|
|
<StatusBar style="auto" />
|
|
<Stack screenOptions={{ headerShown: false, contentStyle: { backgroundColor: theme.bg.base } }}>
|
|
<Stack.Screen name="(tabs)" />
|
|
<Stack.Screen name="+not-found" />
|
|
</Stack>
|
|
<ConnectModal />
|
|
</GestureHandlerRootView>
|
|
);
|
|
}
|
|
|
|
const styles = StyleSheet.create({ root: { flex: 1 } });
|