11import React from 'react' ;
22import { LinkingOptions , NavigationContainer } from '@react-navigation/native' ;
33import { createStackNavigator } from '@react-navigation/stack' ;
4+
45import { SafeAreaProvider } from 'react-native-safe-area-context' ;
56import { navigationRef } from 'navigation/RootNavigation' ;
67import { WHITE } from '@utils/colors' ;
78import { authScreens , AuthStackParamList } from '@auth/screens' ;
89import { commonScreens , CommonStackParamList , userScreens , UserStackParamList } from 'screens' ;
9- // import useStore from '@auth/store';
10+ import { ThemeProvider } from 'styled-components' ;
11+ import { myTheme } from '../../theme' ;
12+ import { useSelector } from 'react-redux' ;
13+ import { authState } from '../store/slices' ;
1014
1115const screenOptions = {
1216 cardStyle : { backgroundColor : WHITE } ,
@@ -17,29 +21,30 @@ type ParamList = CommonStackParamList & UserStackParamList & AuthStackParamList;
1721export const Stack = createStackNavigator < ParamList > ( ) ;
1822
1923const linking : LinkingOptions = {
20- prefixes : [ 'helloworld ://' ] ,
24+ prefixes : [ 'template ://' ] ,
2125 config : {
2226 screens : { } ,
2327 } ,
2428} ;
2529
2630export default function Router ( ) {
27- // const isLoggedIn = useStore((state) => !!state.token);
28- const isLoggedIn = true ;
31+ const { token } = useSelector ( authState ) ;
2932
3033 return (
3134 < NavigationContainer linking = { linking } ref = { navigationRef } >
3235 < SafeAreaProvider >
33- < Stack . Navigator screenOptions = { screenOptions } >
34- { Object . entries ( {
35- // Use some screens conditionally based on some condition
36- ...( isLoggedIn ? userScreens : authScreens ) ,
37- // Use the screens normally
38- ...commonScreens ,
39- } ) . map ( ( [ name , props ] ) => {
40- return < Stack . Screen key = { name } name = { name as keyof ParamList } { ...props } /> ;
41- } ) }
42- </ Stack . Navigator >
36+ < ThemeProvider theme = { myTheme } >
37+ < Stack . Navigator screenOptions = { screenOptions } >
38+ { Object . entries ( {
39+ // Use some screens conditionally based on some condition
40+ ...( token ? userScreens : authScreens ) ,
41+ // Use the screens normally
42+ ...commonScreens ,
43+ } ) . map ( ( [ name , props ] ) => {
44+ return < Stack . Screen key = { name } name = { name as keyof ParamList } { ...props } /> ;
45+ } ) }
46+ </ Stack . Navigator >
47+ </ ThemeProvider >
4348 </ SafeAreaProvider >
4449 </ NavigationContainer >
4550 ) ;
0 commit comments