import { useEffect } from 'react'; import { Stack, useRouter, useSegments } from 'expo-router'; import { StatusBar } from 'expo-status-bar'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { useAuthStore } from '@/lib/auth-store'; import { View, ActivityIndicator } from 'react-native'; import { Colors } from '@/lib/colors'; const queryClient = new QueryClient(); function AuthGuard({ children }: { children: React.ReactNode }) { const { isAuthenticated, isLoading, loadToken } = useAuthStore(); const segments = useSegments(); const router = useRouter(); useEffect(() => { loadToken(); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); useEffect(() => { if (isLoading) return; const inAuthGroup = segments[0] === 'auth'; if (!isAuthenticated && !inAuthGroup) { router.replace('/auth/login'); } else if (isAuthenticated && inAuthGroup) { router.replace('/(tabs)'); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [isAuthenticated, isLoading, segments]); if (isLoading) { return ( ); } return <>{children}; } export default function RootLayout() { return ( ); }