import type { AppStateStatus } from "react-native"; import { useEffect, useLayoutEffect } from "react"; import { AppState, Platform } from "react-native"; import { useNavigation, useRouter } from "expo-router"; import { Stack } from "expo-router/stack"; import { StyledStack } from "@/components/navigation/stack"; import { useIsLoggedIn } from "@/lib/session"; import { focusManager } from "@tanstack/react-query"; function onAppStateChange(status: AppStateStatus) { if (Platform.OS !== "web") { focusManager.setFocused(status === "active"); } } export default function Dashboard() { const router = useRouter(); const navigation = useNavigation(); // Hide the header on the parent screen useLayoutEffect(() => { navigation.setOptions({ headerShown: false, }); }, [navigation]); const isLoggedIn = useIsLoggedIn(); useEffect(() => { if (isLoggedIn !== undefined && !isLoggedIn) { return router.replace("signin"); } }, [isLoggedIn]); useEffect(() => { const subscription = AppState.addEventListener("change", onAppStateChange); return () => subscription.remove(); }, []); return ( ); }