1- import React , { useEffect , useState } from 'react' ;
1+ import React , { useEffect } from 'react' ;
22import { GestureHandlerRootView } from 'react-native-gesture-handler' ;
33import { SQLiteProvider } from 'expo-sqlite' ;
44import { initDatabase } from '../database/db' ;
@@ -18,13 +18,10 @@ import { KeyboardProvider } from 'react-native-keyboard-controller';
1818import AppToast from '../components/AppToast' ;
1919import { Platform } from 'react-native' ;
2020import { StatusBar } from 'expo-status-bar' ;
21- import { Stack , useRouter } from 'expo-router' ;
22- import { useDetourContext } from '@swmansion/react-native-detour' ;
21+ import { Stack } from 'expo-router' ;
2322import { VectorStoreProvider } from '../context/VectorStoreContext' ;
2423import * as SplashScreen from 'expo-splash-screen' ;
2524import SplashScreenAnimation from '../components/SplashScreenAnimation' ;
26- import { DetourProvider } from '@swmansion/react-native-detour' ;
27- import { detourConfig } from '../utils/detourConfig' ;
2825import { initExecutorch } from 'react-native-executorch' ;
2926import { ExpoResourceFetcher } from 'react-native-executorch-expo-resource-fetcher' ;
3027
@@ -33,41 +30,11 @@ initExecutorch({ resourceFetcher: ExpoResourceFetcher });
3330SplashScreen . preventAutoHideAsync ( ) ;
3431SplashScreen . setOptions ( { fade : false , duration : 0 } ) ;
3532
36- // Detour SDK integration for demo purposes.
37- // Only handles navigation for Universal/App links with `/chat/detour-demo` route.
38- // All other routes are ignored.
3933function RootNavigator ( ) {
40- const { deferredLinkProcessed, route } = useDetourContext ( ) ;
41- const router = useRouter ( ) ;
42- const [ navigationHandled , setNavigationHandled ] = useState ( false ) ;
43-
44- // Hide splash screen once Detour processing is complete
45- useEffect ( ( ) => {
46- if ( deferredLinkProcessed ) {
47- SplashScreen . hideAsync ( ) ;
48- }
49- } , [ deferredLinkProcessed ] ) ;
50-
51- // Handle Detour demo route
5234 useEffect ( ( ) => {
53- if ( deferredLinkProcessed && route && ! navigationHandled ) {
54- const isDemoRoute = route . includes ( 'chat/detour-demo' ) ;
55- if ( isDemoRoute ) {
56- console . log ( '🎯 Detour Demo: Navigating to demo chat' ) ;
57- setNavigationHandled ( true ) ;
58- setTimeout ( ( ) => {
59- router . push ( '/(modals)/detour-demo' ) ;
60- } , 1000 ) ;
61- }
62- }
63- } , [ deferredLinkProcessed , route , navigationHandled , router ] ) ;
35+ SplashScreen . hideAsync ( ) ;
36+ } , [ ] ) ;
6437
65- // Wait for Detour to finish processing
66- if ( ! deferredLinkProcessed ) {
67- return null ;
68- }
69-
70- // Render the main navigation stack
7138 return (
7239 < Stack screenOptions = { { headerShown : false } } >
7340 < Stack . Screen name = "(drawer)" />
@@ -129,14 +96,6 @@ function RootNavigator() {
12996 presentation : 'modal' ,
13097 } }
13198 />
132- < Stack . Screen
133- name = "(modals)/detour-demo"
134- options = { {
135- headerShown : true ,
136- headerTitle : 'Detour Route' ,
137- presentation : 'modal' ,
138- } }
139- />
14099 </ Stack >
141100 ) ;
142101}
@@ -153,22 +112,20 @@ export default function Layout() {
153112
154113 return (
155114 < GestureHandlerRootView >
156- < DetourProvider config = { detourConfig } >
157- < SQLiteProvider databaseName = "executorch.db" onInit = { initDatabase } >
158- < ThemeProvider >
159- < VectorStoreProvider >
160- < KeyboardProvider >
161- < BottomSheetModalProvider >
162- < RootNavigator />
163- { Platform . OS === 'android' && < StatusBar style = "auto" /> }
164- < AppToast />
165- </ BottomSheetModalProvider >
166- </ KeyboardProvider >
167- </ VectorStoreProvider >
168- < SplashScreenAnimation />
169- </ ThemeProvider >
170- </ SQLiteProvider >
171- </ DetourProvider >
115+ < SQLiteProvider databaseName = "executorch.db" onInit = { initDatabase } >
116+ < ThemeProvider >
117+ < VectorStoreProvider >
118+ < KeyboardProvider >
119+ < BottomSheetModalProvider >
120+ < RootNavigator />
121+ { Platform . OS === 'android' && < StatusBar style = "auto" /> }
122+ < AppToast />
123+ </ BottomSheetModalProvider >
124+ </ KeyboardProvider >
125+ </ VectorStoreProvider >
126+ < SplashScreenAnimation />
127+ </ ThemeProvider >
128+ </ SQLiteProvider >
172129 </ GestureHandlerRootView >
173130 ) ;
174131}
0 commit comments