TriloopTem_App/app/_layout.tsx
2026-06-19 22:08:10 +08:00

36 lines
1.1 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';
SplashScreen.preventAutoHideAsync();
export { ErrorBoundary } from 'expo-router';
export default function RootLayout() {
const init = useDataStore((s) => s.init);
useEffect(() => {
init().finally(() => SplashScreen.hideAsync());
}, []);
return (
<GestureHandlerRootView style={styles.root}>
<StatusBar style="light" />
<Stack screenOptions={{ headerShown: false, contentStyle: { backgroundColor: '#090912' } }}>
<Stack.Screen name="(tabs)" />
<Stack.Screen name="+not-found" />
</Stack>
{/* ConnectModal is global — accessible from any tab */}
<ConnectModal />
</GestureHandlerRootView>
);
}
const styles = StyleSheet.create({ root: { flex: 1 } });