1import { LinkingOptions, NavigationContainer } from '@react-navigation/native'; 2import { createStackNavigator } from '@react-navigation/stack'; 3import * as Linking from 'expo-linking'; 4import * as React from 'react'; 5import { Text } from 'react-native'; 6 7import RedirectScreen from '../screens/RedirectScreen'; 8import SearchScreen from '../screens/SearchScreen'; 9import MainNavigators from './MainNavigators'; 10import MainTabNavigator from './MainTabNavigator'; 11 12const Switch = createStackNavigator(); 13 14export const linking: LinkingOptions<object> = { 15 prefixes: [Linking.createURL('/')], 16 config: { 17 screens: { 18 main: { 19 initialRouteName: 'apis', 20 screens: { 21 apis: MainNavigators.apis.linking, 22 components: MainNavigators.components.linking, 23 }, 24 }, 25 search: { 26 screens: { 27 search: 'search', 28 }, 29 }, 30 }, 31 }, 32}; 33 34export default function RootNavigation() { 35 return ( 36 <NavigationContainer linking={linking} fallback={<Text>Loading…</Text>}> 37 <Switch.Navigator screenOptions={{ presentation: 'modal', headerShown: false }}> 38 <Switch.Screen name="main" component={MainTabNavigator} /> 39 <Switch.Screen name="redirect" component={RedirectScreen} /> 40 <Switch.Screen 41 name="searchNavigator" 42 component={SearchScreen} 43 options={{ cardStyle: { backgroundColor: 'transparent' } }} 44 /> 45 </Switch.Navigator> 46 </NavigationContainer> 47 ); 48} 49