36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { crypto } from '@chat-app/shared';
|
|
import { Stack } from 'expo-router';
|
|
import { StatusBar } from 'expo-status-bar';
|
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
|
|
import { ErrorBoundary } from '../components/ErrorBoundary';
|
|
import { IncomingCallModal } from '../components/IncomingCallModal';
|
|
import { AuthProvider } from '../lib/authContext';
|
|
import { CallProvider } from '../lib/callContext';
|
|
import { createLibsodiumBackend } from '../lib/cryptoBackend';
|
|
|
|
crypto.setCryptoBackend(createLibsodiumBackend());
|
|
|
|
export default function RootLayout() {
|
|
return (
|
|
<GestureHandlerRootView style={{ flex: 1 }}>
|
|
<SafeAreaProvider>
|
|
<ErrorBoundary>
|
|
<AuthProvider>
|
|
<CallProvider>
|
|
<StatusBar style="auto" />
|
|
<Stack screenOptions={{ headerShown: false }}>
|
|
<Stack.Screen name="index" />
|
|
<Stack.Screen name="(app)" />
|
|
<Stack.Screen name="auth/callback" />
|
|
</Stack>
|
|
<IncomingCallModal />
|
|
</CallProvider>
|
|
</AuthProvider>
|
|
</ErrorBoundary>
|
|
</SafeAreaProvider>
|
|
</GestureHandlerRootView>
|
|
);
|
|
}
|