Refactor API base URL handling for dynamic environment detection; update navigation stacks and integrate SafeAreaProvider for improved layout management across screens.

This commit is contained in:
bobbert committed 2026-04-06 01:12:36 +01:00
1 parent 8acf4c923a
commit d7bc5d38d1
18 files changed
+806 -166

No files matched your search

+40 -34
View File
@@ -1,5 +1,6 @@
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 GameTypeScreen from "./src/components/screens/GameTypeScreen";
@@ -14,58 +15,63 @@ import LeaderboardScreen from "./src/components/screens/LeaderboardScreen";
import AdminHubScreen from "./src/components/screens/AdminHubScreen";
import ManageSubgroupsScreen from "./src/components/screens/ManageSubgroupsScreen";
const Stack = createNativeStackNavigator();
const RootStack = createNativeStackNavigator();
const AuthStackNav = createNativeStackNavigator();
const GameStackNav = createNativeStackNavigator();
const AdminStackNav = createNativeStackNavigator();
const AuthStack = () => (
<Stack.Navigator
<AuthStackNav.Navigator
screenOptions={{headerShown: false}}
>
<Stack.Screen name="LoginScreen" component={LoginScreen}/>
<Stack.Screen name="RegisterScreen" component={RegisterScreen}/>
</Stack.Navigator>
<AuthStackNav.Screen name="LoginScreen" component={LoginScreen}/>
<AuthStackNav.Screen name="RegisterScreen" component={RegisterScreen}/>
</AuthStackNav.Navigator>
);
const GameStack = () => (
<Stack.Navigator
<GameStackNav.Navigator
screenOptions={{headerShown: false}}
>
<Stack.Screen name="GameTypeScreen" component={GameTypeScreen}/>
<Stack.Screen name="JoinPrivateGameScreen" component={JoinPrivateGameScreen}/>
<Stack.Screen name="ManagePrivateGameScreen" component={ManagePrivateGameScreen}/>
<Stack.Screen name="CreateGameScreen" component={CreateGameScreen}/>
<Stack.Screen name="ManageGameScreen" component={ManageGameScreen}/>
<Stack.Screen name="GameLobbyScreen" component={GameLobbyScreen}/>
<Stack.Screen name="LeaderboardScreen" component={LeaderboardScreen}/>
<Stack.Screen name="TeamScreen" component={TeamScreen}/>
<Stack.Screen name="MapScreen" component={MapScreen}/>
</Stack.Navigator>
<GameStackNav.Screen name="GameTypeScreen" component={GameTypeScreen}/>
<GameStackNav.Screen name="JoinPrivateGameScreen" component={JoinPrivateGameScreen}/>
<GameStackNav.Screen name="ManagePrivateGameScreen" component={ManagePrivateGameScreen}/>
<GameStackNav.Screen name="CreateGameScreen" component={CreateGameScreen}/>
<GameStackNav.Screen name="ManageGameScreen" component={ManageGameScreen}/>
<GameStackNav.Screen name="GameLobbyScreen" component={GameLobbyScreen}/>
<GameStackNav.Screen name="LeaderboardScreen" component={LeaderboardScreen}/>
<GameStackNav.Screen name="TeamScreen" component={TeamScreen}/>
<GameStackNav.Screen name="MapScreen" component={MapScreen}/>
</GameStackNav.Navigator>
);
const AdminStack = () => (
<Stack.Navigator
<AdminStackNav.Navigator
screenOptions={{headerShown: false}}
>
<Stack.Screen name="AdminHubScreen" component={AdminHubScreen}/>
<Stack.Screen name="ManageSubgroupsScreen" component={ManageSubgroupsScreen}/>
<Stack.Screen name="LeaderboardScreen" component={LeaderboardScreen}/>
<Stack.Screen name="MapScreen" component={MapScreen}/>
<Stack.Screen name="TeamScreen" component={TeamScreen}/>
<Stack.Screen name="CreateGameScreen" component={CreateGameScreen}/>
<Stack.Screen name="ManageGameScreen" component={ManageGameScreen}/>
</Stack.Navigator>
<AdminStackNav.Screen name="AdminHubScreen" component={AdminHubScreen}/>
<AdminStackNav.Screen name="ManageSubgroupsScreen" component={ManageSubgroupsScreen}/>
<AdminStackNav.Screen name="LeaderboardScreen" component={LeaderboardScreen}/>
<AdminStackNav.Screen name="MapScreen" component={MapScreen}/>
<AdminStackNav.Screen name="TeamScreen" component={TeamScreen}/>
<AdminStackNav.Screen name="CreateGameScreen" component={CreateGameScreen}/>
<AdminStackNav.Screen name="ManageGameScreen" component={ManageGameScreen}/>
</AdminStackNav.Navigator>
);
export const App = () => {
return (
<NavigationContainer>
<Stack.Navigator
screenOptions={{headerShown: false}}
>
<Stack.Screen name="Auth" component={AuthStack}/>
<Stack.Screen name="Game" component={GameStack}/>
<Stack.Screen name="Admin" component={AdminStack}/>
</Stack.Navigator>
</NavigationContainer>
<SafeAreaProvider>
<NavigationContainer>
<RootStack.Navigator
screenOptions={{headerShown: false}}
>
<RootStack.Screen name="Auth" component={AuthStack}/>
<RootStack.Screen name="Game" component={GameStack}/>
<RootStack.Screen name="Admin" component={AdminStack}/>
</RootStack.Navigator>
</NavigationContainer>
</SafeAreaProvider>
);
};