import { Stack } from 'expo-router'; import { GestureHandlerRootView } from 'react-native-gesture-handler'; import { SafeAreaProvider } from 'react-native-safe-area-context'; import * as BackgroundFetch from 'expo-background-fetch'; import { useEffect } from 'react'; import { View, ActivityIndicator } from 'react-native'; import LoginScreen from '../components/LoginScreen'; import { AuthProvider, useAuth } from '../components/AuthContext'; // Import syncManager to ensure TaskManager.defineTask is called in the global scope import { BACKGROUND_SYNC_TASK } from './utils/syncManager'; function AppContent() { const { isAuthenticated, login } = useAuth(); useEffect(() => { const registerTask = async () => { try { await BackgroundFetch.registerTaskAsync(BACKGROUND_SYNC_TASK, { minimumInterval: 60 * 15, stopOnTerminate: false, startOnBoot: true, }); } catch (err) { console.warn('Background fetch failed to register:', err); } }; registerTask(); }, []); if (isAuthenticated === null) { return ( ); } if (!isAuthenticated) { return login(token)} />; } return ( ); } export default function Layout() { return ( ); }