-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.tsx
More file actions
71 lines (61 loc) · 1.71 KB
/
App.tsx
File metadata and controls
71 lines (61 loc) · 1.71 KB
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/**
* @format
*/
import {NavigationContainer, StackActions} from '@react-navigation/native';
import React, {useEffect, useState} from 'react';
import {SafeAreaView, StatusBar, useColorScheme} from 'react-native';
import {createNativeStackNavigator} from '@react-navigation/native-stack';
import {Colors} from 'react-native/Libraries/NewAppScreen';
import LoginPage from './src/views/auth/Login';
import {Home} from './src/views/home/Home';
import AsyncStorage from '@react-native-async-storage/async-storage';
const Stack = createNativeStackNavigator<RootStackParamList>();
export interface RootStackParamList {
[key: string]: undefined;
Login: undefined;
HomeScreen: undefined;
}
function App(): JSX.Element {
const isDarkMode = useColorScheme() === 'dark';
const backgroundStyle = {
backgroundColor: isDarkMode ? Colors.darker : 'white',
flex: 1,
};
const [isLoggedIn, setIsLoggedIn] = useState(false);
// F this for now
useEffect(() => {
async function checkLoginStatus() {
const loginStatus = await AsyncStorage.getItem('LOGIN');
if (loginStatus) {
setIsLoggedIn(true);
}
}
checkLoginStatus();
}, []);
return (
<SafeAreaView style={backgroundStyle}>
<StatusBar
barStyle={isDarkMode ? 'light-content' : 'dark-content'}
backgroundColor={backgroundStyle.backgroundColor}
/>
<NavigationContainer>
<Stack.Navigator>
{isLoggedIn ? (
<Stack.Screen
name="HomeScreen"
component={Home}
options={{headerShown: false}}
/>
) : (
<Stack.Screen
name="Login"
component={LoginPage}
options={{headerShown: false}}
/>
)}
</Stack.Navigator>
</NavigationContainer>
</SafeAreaView>
);
}
export default App;