Files
ChatApp/apps/mobile/app/(app)/_layout.tsx
T

15 lines
576 B
TypeScript

import { Redirect, Stack } from 'expo-router';
import { useAuth } from '../../lib/authContext';
// Guard for the authenticated route group. While the AuthProvider is
// hydrating from AsyncStorage we render nothing (a brief blank frame)
// rather than flashing the login screen and then snapping into the chat
// list — that's a worse UX than a 200ms blank.
export default function AppLayout() {
const { session, loading } = useAuth();
if (loading) return null;
if (!session) return <Redirect href="/" />;
return <Stack screenOptions={{ headerShown: true }} />;
}