// app/_layout.tsx import { Stack } from "expo-router"; import { useEffect, useState } from "react"; import { Provider, useDispatch, useSelector } from "react-redux"; import { store, AppDispatch, RootState } from "@/store"; import { PaperProvider } from "react-native-paper"; import { I18nextProvider } from "react-i18next"; import i18next from "@/services/i18n"; import SnackbarProvider from "@/contexts/Snackbar"; import * as SplashScreen from "expo-splash-screen"; import AsyncStorage from "@react-native-async-storage/async-storage"; import { STORAGE_KEYS } from "@/constants/config"; import { setIsLoggedIn } from "@/store/authSlice"; SplashScreen.preventAutoHideAsync(); export default function RootLayout() { return ( ); } function SplashAndAuthRouter() { const dispatch = useDispatch(); const isLoggedIn = useSelector((state: RootState) => state.auth.isLoggedIn); const [loading, setLoading] = useState(true); useEffect(() => { const loadAuth = async () => { const token = await AsyncStorage.getItem(STORAGE_KEYS.AUTH_TOKEN); dispatch(setIsLoggedIn(!!token)); setLoading(false); SplashScreen.hideAsync(); }; loadAuth(); }, []); if (loading) return null; return ( ); }