import { StatusBar } from 'expo-status-bar';
import React, { useEffect, useState } from 'react';
import { View, ActivityIndicator } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import AppNavigator from './src/navigation/AppNavigator';
import { AuthProvider } from './src/contexts/AuthContext';
import * as WebBrowser from 'expo-web-browser';
import { handleInitialAuthUrl, subscribeToAuthRedirects } from './src/auth/authRedirect';
import { supabase } from './src/services/supabase';
WebBrowser.maybeCompleteAuthSession();
export default function App() {
const [isBootstrapped, setIsBootstrapped] = useState(false);
useEffect(() => {
const bootstrapAuth = async () => {
console.log('[App] Bootstrapping auth...');
await handleInitialAuthUrl();
await supabase.auth.getSession();
const sub = subscribeToAuthRedirects();
setIsBootstrapped(true);
console.log('[App] Bootstrapped auth!');
return () => {
sub.remove();
};
};
bootstrapAuth();
}, []);
if (!isBootstrapped) {
return (
);
}
return (
);
}