mirror of
https://github.com/mudabbir-ahmad/MAD-Treasure-Hunt.git
synced 2026-10-07 19:00:20 +00:00
Refactor navigation routes to include prefix and add new page components for admin hub, game lobby, game type, join private game, manage private subtask, manage subgroups, and team
This commit is contained in:
1 parent
884f9e818b
commit
33f73105ad
32 files changed
+88
-77
No files matched your search
@@ -0,0 +1,5 @@
|
|||||||
|
import AdminHubPage from '../Screens/AdminHubPage';
|
||||||
|
|
||||||
|
export default AdminHubPage;
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import GameLobbyPage from '../Screens/GameLobbyPage';
|
||||||
|
|
||||||
|
export default GameLobbyPage;
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import GameTypePage from '../Screens/GameTypePage';
|
||||||
|
|
||||||
|
export default GameTypePage;
|
||||||
|
|
||||||
|
|
||||||
@@ -3,3 +3,4 @@ import { Redirect } from "expo-router";
|
|||||||
export default function Index() {
|
export default function Index() {
|
||||||
return <Redirect href="/login" />;
|
return <Redirect href="/login" />;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import JoinPrivateGamePage from '../Screens/JoinPrivateGamePage';
|
||||||
|
|
||||||
|
export default JoinPrivateGamePage;
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import LoginPage from '../Screens/LoginPage';
|
||||||
|
|
||||||
|
export default LoginPage;
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import ManagePrivateSubtaskPage from '../Screens/ManagePrivateSubtaskPage';
|
||||||
|
|
||||||
|
export default ManagePrivateSubtaskPage;
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import ManageSubgroupsPage from '../Screens/ManageSubgroupsPage';
|
||||||
|
|
||||||
|
export default ManageSubgroupsPage;
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import MapPage from '../Screens/MapPage';
|
||||||
|
|
||||||
|
export default MapPage;
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import RegisterPage from '../Screens/RegisterPage';
|
||||||
|
|
||||||
|
export default RegisterPage;
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import TeamPage from '../Screens/TeamPage';
|
||||||
|
|
||||||
|
export default TeamPage;
|
||||||
|
|
||||||
|
|
||||||
@@ -12,11 +12,11 @@ const useLoginLogic = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (email.trim().toLowerCase().includes('admin')) {
|
if (email.trim().toLowerCase().includes('admin')) {
|
||||||
navigation.navigate('admin-hub');
|
navigation.navigate('(routes)/admin-hub');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
navigation.navigate('game-type');
|
navigation.navigate('(routes)/game-type');
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const AdminHubPage = () => {
|
|||||||
gameType: 'private',
|
gameType: 'private',
|
||||||
isBusiness: true,
|
isBusiness: true,
|
||||||
});
|
});
|
||||||
navigation.navigate('game-lobby');
|
navigation.navigate('(routes)/game-lobby');
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -25,10 +25,10 @@ const AdminHubPage = () => {
|
|||||||
<Pressable style={styles.button} onPress={handleCreateGame}>
|
<Pressable style={styles.button} onPress={handleCreateGame}>
|
||||||
<Text style={styles.buttonText}>Create a Game</Text>
|
<Text style={styles.buttonText}>Create a Game</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Pressable style={styles.button} onPress={() => navigation.navigate('game-lobby')}>
|
<Pressable style={styles.button} onPress={() => navigation.navigate('(routes)/game-lobby')}>
|
||||||
<Text style={styles.buttonText}>Manage Existing Game</Text>
|
<Text style={styles.buttonText}>Manage Existing Game</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Pressable style={styles.button} onPress={() => navigation.navigate('manage-subgroups')}>
|
<Pressable style={styles.button} onPress={() => navigation.navigate('(routes)/manage-subgroups')}>
|
||||||
<Text style={styles.buttonText}>Manage Subgroups</Text>
|
<Text style={styles.buttonText}>Manage Subgroups</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ const GameLobbyPage = () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setHasTeam(true);
|
setHasTeam(true);
|
||||||
navigation.navigate('team');
|
navigation.navigate('(routes)/team');
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleJoinTeam = async () => {
|
const handleJoinTeam = async () => {
|
||||||
@@ -26,7 +26,7 @@ const GameLobbyPage = () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setHasTeam(true);
|
setHasTeam(true);
|
||||||
navigation.navigate('team');
|
navigation.navigate('(routes)/team');
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -47,7 +47,7 @@ const GameLobbyPage = () => {
|
|||||||
<Pressable style={styles.primaryButton} onPress={handleCreateTeam}>
|
<Pressable style={styles.primaryButton} onPress={handleCreateTeam}>
|
||||||
<Text style={styles.buttonText}>Create Team</Text>
|
<Text style={styles.buttonText}>Create Team</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Pressable style={styles.secondaryButton} onPress={() => navigation.navigate('map')}>
|
<Pressable style={styles.secondaryButton} onPress={() => navigation.navigate('(routes)/map')}>
|
||||||
<Text style={styles.buttonText}>Open Map</Text>
|
<Text style={styles.buttonText}>Open Map</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
{!!error && <Text style={styles.errorText}>{error}</Text>}
|
{!!error && <Text style={styles.errorText}>{error}</Text>}
|
||||||
|
|||||||
@@ -9,14 +9,14 @@ const GameTypePage = () => {
|
|||||||
|
|
||||||
const navigateByType = (label) => {
|
const navigateByType = (label) => {
|
||||||
if (label === 'Join Global Game') {
|
if (label === 'Join Global Game') {
|
||||||
navigation.navigate('game-lobby');
|
navigation.navigate('(routes)/game-lobby');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (label === 'Join Private Game') {
|
if (label === 'Join Private Game') {
|
||||||
navigation.navigate('join-private-game');
|
navigation.navigate('(routes)/join-private-game');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
navigation.navigate('manage-private-subtask');
|
navigation.navigate('(routes)/manage-private-subtask');
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const JoinPrivateGamePage = () => {
|
|||||||
if (!group) {
|
if (!group) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
navigation.navigate('game-lobby');
|
navigation.navigate('(routes)/game-lobby');
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ const LoginPage = () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (user.SGid === 0) {
|
if (user.SGid === 0) {
|
||||||
navigation.navigate('admin-hub');
|
navigation.navigate('(routes)/admin-hub');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
navigation.navigate('game-type');
|
navigation.navigate('(routes)/game-type');
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -48,7 +48,7 @@ const LoginPage = () => {
|
|||||||
onChangeText={setPassword}
|
onChangeText={setPassword}
|
||||||
/>
|
/>
|
||||||
<View style={styles.row}>
|
<View style={styles.row}>
|
||||||
<Pressable style={styles.leftButton} onPress={() => navigation.navigate('register')}>
|
<Pressable style={styles.leftButton} onPress={() => navigation.navigate('(routes)/register')}>
|
||||||
<Text style={styles.buttonText}>Register</Text>
|
<Text style={styles.buttonText}>Register</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Pressable style={styles.rightButton} onPress={handleLogin}>
|
<Pressable style={styles.rightButton} onPress={handleLogin}>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ const ManagePrivateSubtaskPage = () => {
|
|||||||
if (!group) {
|
if (!group) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
navigation.navigate('admin-hub');
|
navigation.navigate('(routes)/admin-hub');
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleJoinAdmin = async () => {
|
const handleJoinAdmin = async () => {
|
||||||
@@ -31,7 +31,7 @@ const ManagePrivateSubtaskPage = () => {
|
|||||||
if (!response) {
|
if (!response) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
navigation.navigate('admin-hub');
|
navigation.navigate('(routes)/admin-hub');
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ const RegisterPage = () => {
|
|||||||
if (!user) {
|
if (!user) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
navigation.navigate(user.SGid === 0 ? 'admin-hub' : 'game-type');
|
navigation.navigate(user.SGid === 0 ? '(routes)/admin-hub' : '(routes)/game-type');
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -68,7 +68,7 @@ const RegisterPage = () => {
|
|||||||
<Pressable style={styles.submitButton} onPress={handleRegister}>
|
<Pressable style={styles.submitButton} onPress={handleRegister}>
|
||||||
<Text style={styles.submitText}>{submitting ? 'Creating...' : 'Create Account'}</Text>
|
<Text style={styles.submitText}>{submitting ? 'Creating...' : 'Create Account'}</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Pressable onPress={() => navigation.navigate('login')}>
|
<Pressable onPress={() => navigation.navigate('(routes)/login')}>
|
||||||
<Text style={styles.backText}>Back to Login</Text>
|
<Text style={styles.backText}>Back to Login</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
{!!error && <Text style={styles.errorText}>{error}</Text>}
|
{!!error && <Text style={styles.errorText}>{error}</Text>}
|
||||||
|
|||||||
+12
-12
@@ -2,18 +2,18 @@ import { Stack } from "expo-router";
|
|||||||
|
|
||||||
export default function RootLayout() {
|
export default function RootLayout() {
|
||||||
return (
|
return (
|
||||||
<Stack initialRouteName="index">
|
<Stack initialRouteName="(routes)/index">
|
||||||
<Stack.Screen name="index" options={{ headerShown: false }} />
|
<Stack.Screen name="(routes)/index" options={{ headerShown: false }} />
|
||||||
<Stack.Screen name="login" options={{ title: "Login" }} />
|
<Stack.Screen name="(routes)/login" options={{ title: "Login" }} />
|
||||||
<Stack.Screen name="register" options={{ title: "Register" }} />
|
<Stack.Screen name="(routes)/register" options={{ title: "Register" }} />
|
||||||
<Stack.Screen name="game-type" options={{ title: "Select Game Type" }} />
|
<Stack.Screen name="(routes)/game-type" options={{ title: "Select Game Type" }} />
|
||||||
<Stack.Screen name="join-private-game" options={{ title: "Join Private Game" }} />
|
<Stack.Screen name="(routes)/join-private-game" options={{ title: "Join Private Game" }} />
|
||||||
<Stack.Screen name="manage-private-subtask" options={{ title: "Manage Private Game" }} />
|
<Stack.Screen name="(routes)/manage-private-subtask" options={{ title: "Manage Private Game" }} />
|
||||||
<Stack.Screen name="game-lobby" options={{ title: "Game Lobby" }} />
|
<Stack.Screen name="(routes)/game-lobby" options={{ title: "Game Lobby" }} />
|
||||||
<Stack.Screen name="team" options={{ title: "Team" }} />
|
<Stack.Screen name="(routes)/team" options={{ title: "Team" }} />
|
||||||
<Stack.Screen name="map" options={{ title: "Map" }} />
|
<Stack.Screen name="(routes)/map" options={{ title: "Map" }} />
|
||||||
<Stack.Screen name="admin-hub" options={{ title: "Admin Hub" }} />
|
<Stack.Screen name="(routes)/admin-hub" options={{ title: "Admin Hub" }} />
|
||||||
<Stack.Screen name="manage-subgroups" options={{ title: "Manage Subgroups" }} />
|
<Stack.Screen name="(routes)/manage-subgroups" options={{ title: "Manage Subgroups" }} />
|
||||||
</Stack>
|
</Stack>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
import AdminHubPage from './Screens/AdminHubPage';
|
|
||||||
|
|
||||||
export default AdminHubPage;
|
|
||||||
|
|
||||||
@@ -7,13 +7,13 @@ const AdminFooterNavbar = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<View style={styles.container}>
|
<View style={styles.container}>
|
||||||
<Pressable style={styles.button} onPress={() => navigation.navigate('admin-hub')}>
|
<Pressable style={styles.button} onPress={() => navigation.navigate('(routes)/admin-hub')}>
|
||||||
<Text style={styles.text}>Admin Hub</Text>
|
<Text style={styles.text}>Admin Hub</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Pressable style={styles.button} onPress={() => navigation.navigate('game-lobby')}>
|
<Pressable style={styles.button} onPress={() => navigation.navigate('(routes)/game-lobby')}>
|
||||||
<Text style={styles.text}>Manage Game</Text>
|
<Text style={styles.text}>Manage Game</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Pressable style={styles.button} onPress={() => navigation.navigate('team')}>
|
<Pressable style={styles.button} onPress={() => navigation.navigate('(routes)/team')}>
|
||||||
<Text style={styles.text}>Manage Team</Text>
|
<Text style={styles.text}>Manage Team</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@@ -11,13 +11,13 @@ const MemberFooterNavbar = ({ visible = false }) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<View style={styles.container}>
|
<View style={styles.container}>
|
||||||
<Pressable style={styles.button} onPress={() => navigation.navigate('game-lobby')}>
|
<Pressable style={styles.button} onPress={() => navigation.navigate('(routes)/game-lobby')}>
|
||||||
<Text style={styles.text}>Lobby</Text>
|
<Text style={styles.text}>Lobby</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Pressable style={styles.button} onPress={() => navigation.navigate('team')}>
|
<Pressable style={styles.button} onPress={() => navigation.navigate('(routes)/team')}>
|
||||||
<Text style={styles.text}>Team</Text>
|
<Text style={styles.text}>Team</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Pressable style={styles.button} onPress={() => navigation.navigate('map')}>
|
<Pressable style={styles.button} onPress={() => navigation.navigate('(routes)/map')}>
|
||||||
<Text style={styles.text}>Map</Text>
|
<Text style={styles.text}>Map</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
import GameLobbyPage from './Screens/GameLobbyPage';
|
|
||||||
|
|
||||||
export default GameLobbyPage;
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
import GameTypePage from './Screens/GameTypePage';
|
|
||||||
|
|
||||||
export default GameTypePage;
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
import JoinPrivateGamePage from './Screens/JoinPrivateGamePage';
|
|
||||||
|
|
||||||
export default JoinPrivateGamePage;
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
import LoginPage from './Screens/LoginPage';
|
|
||||||
|
|
||||||
export default LoginPage;
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
import ManagePrivateSubtaskPage from './Screens/ManagePrivateSubtaskPage';
|
|
||||||
|
|
||||||
export default ManagePrivateSubtaskPage;
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
import ManageSubgroupsPage from './Screens/ManageSubgroupsPage';
|
|
||||||
|
|
||||||
export default ManageSubgroupsPage;
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
import MapPage from './Screens/MapPage';
|
|
||||||
|
|
||||||
export default MapPage;
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
import RegisterPage from './Screens/RegisterPage';
|
|
||||||
|
|
||||||
export default RegisterPage;
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
import TeamPage from './Screens/TeamPage';
|
|
||||||
|
|
||||||
export default TeamPage;
|
|
||||||
|
|
||||||
Reference in new issue
Block a user