/* eslint-disable global-require */ import FontAwesome from '@expo/vector-icons/FontAwesome'; import { DarkTheme, DefaultTheme, ThemeProvider, } from '@react-navigation/native'; import { useFonts } from 'expo-font'; import { SplashScreen, Stack } from 'expo-router'; import { useEffect } from 'react'; import { useColorScheme } from 'react-native'; import useTailwind from './hooks/useTailwind'; export { // Catch any errors thrown by the Layout component. ErrorBoundary, } from 'expo-router'; // eslint-disable-next-line camelcase export const unstable_settings = { // Ensure that reloading on `/modal` keeps a back button present. initialRouteName: '(tabs)/index', }; // Prevent the splash screen from auto-hiding before asset loading is complete. SplashScreen.preventAutoHideAsync(); export default function RootLayout() { const [loaded, error] = useFonts({ OpenSansRegular: require('../assets/fonts/OpenSans-Regular.ttf'), OpenSansLight: require('../assets/fonts/OpenSans-Light.ttf'), OpenSansMedium: require('../assets/fonts/OpenSans-Medium.ttf'), OpenSansBold: require('../assets/fonts/OpenSans-Bold.ttf'), OpenSansSemiBold: require('../assets/fonts/OpenSans-SemiBold.ttf'), OpenSansExtra: require('../assets/fonts/OpenSans-ExtraBold.ttf'), ...FontAwesome.font, }); // Expo Router uses Error Boundaries to catch errors in the navigation tree. useEffect(() => { if (error) throw error; }, [error]); useEffect(() => { if (loaded) { SplashScreen.hideAsync(); } }, [loaded]); if (!loaded) { return null; } return ; } function RootLayoutNav() { const colorScheme = useColorScheme(); const { colors } = useTailwind(); return ( ); }