import { AuthProvider } from '@/context/AuthContext'; import { Slot, SplashScreen, useRouter } from 'expo-router'; import * as Notifications from 'expo-notifications'; import { useEffect, useState } from 'react'; import { Platform } from 'react-native'; import React from 'react'; // Prevent the splash screen from auto-hiding SplashScreen.preventAutoHideAsync(); export default function RootLayout() { const router = useRouter(); const [appReady, setAppReady] = useState(false); const [splashComplete, setSplashComplete] = useState(false); useEffect(() => { // Initialize your app const prepare = async () => { try { // Request notification permissions const { status } = await Notifications.requestPermissionsAsync(); if (status !== 'granted') { console.warn('Permission for notifications not granted!'); } // Set up notification handler Notifications.setNotificationHandler({ handleNotification: async () => ({ shouldShowAlert: true, shouldPlaySound: true, shouldSetBadge: false, shouldShowBanner: true, shouldShowList: true, }), }); // Artificially delay for demonstration await new Promise(resolve => setTimeout(resolve, 2000)); } catch (e) { console.warn(e); } finally { setAppReady(true); await SplashScreen.hideAsync(); } }; prepare(); }, []); return ( ); }