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 GameSelectionScreen from "./src/components/screens/GameSelectionScreen"; import GlobalEventsScreen from "./src/components/screens/global/GlobalEventsScreen"; import GlobalMapScreen from "./src/components/screens/global/GlobalMapScreen"; import GlobalCacheViewScreen from "./src/components/screens/global/GlobalCacheViewScreen"; import GlobalLeaderboardScreen from "./src/components/screens/global/GlobalLeaderboardScreen"; 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;