Files
birthday/apk/components/views/root-navigation.tsx
Aran Roig 3e8cc0b9c8
Some checks failed
Build APK / build (push) Has been cancelled
Test
2026-04-25 12:31:47 +02:00

37 lines
1.0 KiB
TypeScript

import { BirthdaysProvider } from "@/context/birthdays-context";
import { useAuth } from "@/context/auth-context";
import { Stack, router, useRootNavigationState, useSegments } from "expo-router";
import React, { useEffect } from "react";
import LoadingScreen from "./loading-screen";
export default function RootLayout() {
const { user, isHydrated } = useAuth();
const navigationState = useRootNavigationState();
const segments = useSegments();
const [loaded, setLoaded] = React.useState(false);
useEffect(() => {
if (!isHydrated || !navigationState?.key) return;
const inAuthGroup = segments.length === 0;
if (!user) {
router.replace("/(auth)/login");
} else if (inAuthGroup) {
router.replace("/(tabs)");
}
setLoaded(true); // 👈 ALWAYS run this
}, [isHydrated, navigationState?.key, segments, user]);
//if(!loaded) {
// return (<LoadingScreen />); // or a loading spinner
//}
return (
<BirthdaysProvider>
<Stack screenOptions={{ headerShown: false }} />
</BirthdaysProvider>
);
}