// 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 (
);
}