Add Sign in with Apple sorta
This commit is contained in:
@@ -3,19 +3,36 @@ import { useFonts } from 'expo-font';
|
||||
import { Stack } from 'expo-router';
|
||||
import * as SplashScreen from 'expo-splash-screen';
|
||||
import { StatusBar } from 'expo-status-bar';
|
||||
import { useEffect } from 'react';
|
||||
import { useEffect, useState } from 'react';
|
||||
import 'react-native-reanimated';
|
||||
import { ThemedView } from '@/components/theme';
|
||||
import { Session } from '@supabase/supabase-js';
|
||||
import { useColorScheme } from '@/hooks/useColorScheme';
|
||||
import { supabase } from '@/lib/supabase';
|
||||
import LoginPage from '@/components/auth/Login';
|
||||
import Account from '@/components/Account';
|
||||
|
||||
// Prevent the splash screen from auto-hiding before asset loading is complete.
|
||||
SplashScreen.preventAutoHideAsync();
|
||||
|
||||
const RootLayout = () => {
|
||||
const scheme = useColorScheme() ?? 'dark';
|
||||
const [session, setSession] = useState<Session | null>(null);
|
||||
|
||||
const [loaded] = useFonts({
|
||||
SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
supabase.auth.getSession().then(({ data: { session } }) => {
|
||||
setSession(session);
|
||||
});
|
||||
|
||||
supabase.auth.onAuthStateChange((_event, session) => {
|
||||
setSession(session);
|
||||
});
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (loaded) {
|
||||
SplashScreen.hideAsync();
|
||||
@@ -28,12 +45,19 @@ const RootLayout = () => {
|
||||
|
||||
return (
|
||||
<ThemeProvider value={scheme === 'dark' ? DarkTheme : DefaultTheme}>
|
||||
<Stack>
|
||||
<Stack.Screen name='(tabs)' options={{ headerShown: false }} />
|
||||
<Stack.Screen name='+not-found' />
|
||||
</Stack>
|
||||
{session && session.user ? (
|
||||
<Stack>
|
||||
<Stack.Screen name='(tabs)' options={{ headerShown: false }} />
|
||||
<Stack.Screen name='+not-found' />
|
||||
</Stack>
|
||||
) : (
|
||||
<ThemedView style={{ flex: 1 }}>
|
||||
<LoginPage />
|
||||
</ThemedView>
|
||||
)}
|
||||
<StatusBar style='auto' />
|
||||
</ThemeProvider>
|
||||
);
|
||||
};
|
||||
|
||||
export default RootLayout;
|
||||
|
||||
Reference in New Issue
Block a user