import { configureLocalization } from '@/locale/I18nConfig'
import { store } from '@/stores/store'
import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native'
import { useFonts } from 'expo-font'
import * as SplashScreen from 'expo-splash-screen'
import { StatusBar } from 'expo-status-bar'
import React, { useEffect } from 'react'
import { useColorScheme } from 'react-native'
import 'react-native-reanimated'
import { injectStore } from '@/services/networking/axios'
import { BaseProvider } from 'rn-base-component'
import { theme } from '@/themes'
import { BottomSheetModalProvider } from '@gorhom/bottom-sheet'
import { RootNavigation } from '@/routes/AppNavigation'
import { useSelector } from 'react-redux'
import { getLoadingIndicator } from '@/stores/selectors'
import { IndicatorDialog } from '@/components'
// Prevent the splash screen from auto-hiding before asset loading is complete.
SplashScreen.preventAutoHideAsync()
injectStore(store)
configureLocalization('en')
export default function MainLayout() {
const colorScheme = useColorScheme()
const showGlobalIndicator = useSelector(getLoadingIndicator)
const [loaded] = useFonts({
RobotoRegular: require('../assets/fonts/Roboto-Regular.ttf'),
RobotoMedium: require('../assets/fonts/Roboto-Medium.ttf'),
RobotoBold: require('../assets/fonts/Roboto-Bold.ttf'),
})
useEffect(() => {
if (loaded) {
SplashScreen.hideAsync()
}
}, [loaded])
if (!loaded) {
return null
}
return (
<>
{showGlobalIndicator && }
>
)
}