Untitled
import { Stack, useRouter, useSegments } from 'expo-router'; import { useEffect } from 'react'; import AsyncStorage from '@react-native-async-storage/async-storage'; export default function RootLayout() { const router = useRouter(); const segments = useSegments(); // Check if the user is authenticated const checkAuth = async () => { const token = await AsyncStorage.getItem('token'); const inAuthGroup = segments[0] === '(auth)'; if (!token && !inAuthGroup) { // Redirect to login if not authenticated router.replace('/login'); } else if (token && inAuthGroup) { // Redirect to home if authenticated router.replace('/home'); } }; useEffect(() => { checkAuth(); }, [segments]); return ( <Stack> <Stack.Screen name="index" options={{ headerShown: false }} /> <Stack.Screen name="login" options={{ headerShown: false }} /> <Stack.Screen name="signup" options={{ headerShown: false }} /> <Stack.Screen name="home" options={{ headerShown: false }} /> </Stack> ); }
Leave a Comment