-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.js
54 lines (47 loc) · 1.64 KB
/
App.js
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import React, { useState, useEffect } from 'react';
import { AppLoading } from "expo"
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import Register from './src/screens/Register';
import Login from './src/screens/Login';
import Landing from './src/screens/Landing';
import { ApolloProvider } from '@apollo/client';
import {client} from "./client";
import { getTokenFromStorage } from "./src/utils/token";
import {Root} from './src/screens/Root';
const Stack = createStackNavigator();
export default function App() {
const [isSignedIn, setIsSignedIn] = useState(true);
const [loading, setLoading] = useState(true);
useEffect(() => {
const checkSignedIn = async () => {
const token = await getTokenFromStorage("auth");
if (!token) {
setIsSignedIn(!isSignedIn);
setLoading(!loading);
}
setLoading(!loading);
}
checkSignedIn();
}, []);
if (loading) {
return <AppLoading />
}
return (
<ApolloProvider client={client}>
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name='Root' component={Root} options={{ headerTitle: "Home"}} />
<Stack.Screen name='Landing' component={Landing} options={{
header: () => null,
title: ''
}}/>
<Stack.Screen name='Register' component={Register} options={{
headerTitle: "Create Account"
}}/>
<Stack.Screen name='Login' component={Login} options={{ headerTitle: "Sign in"}}/>
</Stack.Navigator>
</NavigationContainer>
</ApolloProvider>
);
}