import {useEffect, useState} from "react"; import {ActivityIndicator, View} from "react-native"; import {NavigationContainer} from "@react-navigation/native"; import {createNativeStackNavigator} from "@react-navigation/native-stack"; import {SafeAreaProvider} from "react-native-safe-area-context"; import LoginScreen from "./src/components/screens/LoginScreen"; import RegisterScreen from "./src/components/screens/RegisterScreen"; import TeamScreen from "./src/components/screens/TeamScreen"; import MapScreen from "./src/components/screens/MapScreen"; import LeaderboardScreen from "./src/components/screens/LeaderboardScreen"; import GameSettingsScreen from "./src/components/screens/GameSettingsScreen"; import DepartmentSettingsScreen from "./src/components/screens/DepartmentSettingsScreen"; import PlayersScreen from "./src/components/screens/PlayersScreen"; import ExpandedMapScreen from "./src/components/screens/ExpandedMapScreen"; import {loadSession} from "./src/hooks/SessionStore"; const RootStack = createNativeStackNavigator(); const AuthStackNav = createNativeStackNavigator(); const GameStackNav = createNativeStackNavigator(); const AdminStackNav = createNativeStackNavigator(); const screenOptions = { headerShown: false, contentStyle: {backgroundColor: '#ffffff'}, }; const AuthStack = () => ( ); const GameStack = () => ( ); const AdminStack = () => ( ); export const App = () => { // Load persisted session from AsyncStorage before choosing initial route const [loading, setLoading] = useState(true); const [initialRoute, setInitialRoute] = useState('Auth'); useEffect(() => { loadSession().then((session) => { if (session.currentUid) { setInitialRoute(session.isAcceptedAdmin ? 'Admin' : 'Game'); } setLoading(false); }); }, []); if (loading) { return ( ); } return ( ); }; export default App;