| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import { Stack } from 'expo-router/stack';
- import AuthProvider, { useAuth } from '../context/AuthProvider';
- import { EXPO_PUBLIC_NODE_ENV } from '@env';
- import { GestureHandlerRootView } from 'react-native-gesture-handler';
- import { useEffect, useState } from 'react';
- import { checkVersion } from '../component/checkVersion';
- import { authenticationService } from '../service/authService';
- import { usePushNotifications } from './hooks/usePushNotifications';
- import Constants from 'expo-constants';
- import { Alert } from 'react-native';
- export default function RootLayout() {
- const [isLoading, setIsLoading] = useState(true);
- const { user } = useAuth();
- const { expoPushToken, notification } = usePushNotifications();
- const data = JSON.stringify(notification, undefined, 2);
- useEffect(() => {
- const logAppConfig = async () => {
- console.log('=== App Configuration ===');
- console.log('Environment:', EXPO_PUBLIC_NODE_ENV);
- console.log('App Version:', Constants.expoConfig?.version);
- console.log('Runtime Version:', Constants.expoConfig?.runtimeVersion);
- console.log('Update Channel:', Constants.expoConfig?.updates?.channel);
- console.log('Release Channel:', Constants.manifest?.releaseChannel);
- console.log('======================');
- };
- const init = async () => {
- try {
- await logAppConfig();
- console.log('Fetching version info...');
- const response = await authenticationService.getVersion();
- console.log('Version response:', response);
- console.log('Checking version...');
- checkVersion(response);
- console.log('Initialization complete');
- } catch (error) {
- console.error('Initialization error:', error);
- // Log additional context but don't crash
- Alert.alert('Initialization Error', 'Please check your connection and try again.');
- }
- };
- init();
- }, []);
- useEffect(() => {
- const fetchVersion = async () => {
- const response = await authenticationService.getVersion();
- checkVersion(response);
- };
- fetchVersion();
- }, []);
- return (
- <GestureHandlerRootView style={{ flex: 1 }}>
- <AuthProvider>
- <Stack>
- <Stack.Screen name="(auth)/(tabs)" options={{ headerShown: false }} />
- <Stack.Screen name="(public)/login" options={{ headerShown: false }} />
- <Stack.Screen name="(public)/registerChooseVehiclesOne" options={{ headerShown: false }} />
- <Stack.Screen name="(public)/registerChooseVehiclesTwo" options={{ headerShown: false }} />
- {/* Testing Purpose */}
- {EXPO_PUBLIC_NODE_ENV == 'development' ? (
- <Stack.Screen
- name="(public)/test"
- options={{
- headerShown: false,
- title: 'Test Component Page'
- }}
- />
- ) : (
- <></>
- )}
- </Stack>
- </AuthProvider>
- </GestureHandlerRootView>
- );
- }
|