import { tokenCache } from "@/lib/auth"; import { ClerkProvider, ClerkLoaded } from "@clerk/clerk-expo"; import { useFonts } from "expo-font"; import { Stack } from "expo-router"; import * as SplashScreen from "expo-splash-screen"; import { useEffect } from "react"; import "react-native-reanimated"; // Prevent the splash screen from auto-hiding before asset loading is complete. SplashScreen.preventAutoHideAsync(); const RootLayout = () => { const [loaded] = useFonts({ "Jakarta-Bold": require("../assets/fonts/PlusJakartaSans-Bold.ttf"), "Jakarta-ExtraBold": require("../assets/fonts/PlusJakartaSans-ExtraBold.ttf"), "Jakarta-ExtraLight": require("../assets/fonts/PlusJakartaSans-ExtraLight.ttf"), "Jakarta-Light": require("../assets/fonts/PlusJakartaSans-Light.ttf"), "Jakarta-Medium": require("../assets/fonts/PlusJakartaSans-Medium.ttf"), "Jakarta-Regular": require("../assets/fonts/PlusJakartaSans-Regular.ttf"), "Jakarta-SemiBold": require("../assets/fonts/PlusJakartaSans-SemiBold.ttf"), }); useEffect(() => { if (loaded) { SplashScreen.hideAsync(); } }, [loaded]); if (!loaded) { return null; } const publishableKey = process.env.EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY!; if (!publishableKey) throw new Error("Missing Clerk Publishable Key."); return ( ); }; export default RootLayout;