-
Notifications
You must be signed in to change notification settings - Fork 0
/
Navigator.tsx
38 lines (33 loc) · 1.01 KB
/
Navigator.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import React, {useEffect} from 'react';
import {
CommonActions,
NavigationContainer,
createNavigationContainerRef,
} from '@react-navigation/native';
import {createNativeStackNavigator} from '@react-navigation/native-stack';
import {useCredentials} from './hooks/useAuth';
import {routes} from './constants';
interface IProps {
loading: React.ReactNode;
signedOut: React.ReactNode;
signedIn: React.ReactElement;
}
const Stack = createNativeStackNavigator();
export const navigationRef = createNavigationContainerRef();
export default function Navigator(props: IProps) {
const [credentials] = useCredentials();
const isLoading = typeof credentials === 'undefined';
const isSignedIn = !!credentials;
return (
<NavigationContainer ref={navigationRef}>
<Stack.Navigator initialRouteName={routes.splash}>
{isLoading
? props.loading
: isSignedIn
? props.signedIn
: props.signedOut
}
</Stack.Navigator>
</NavigationContainer>
);
}