forked from BluezoneGlobal/bluezone-app
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.js
80 lines (71 loc) · 2.8 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
* @Project Bluezone
* @Author Bluezone Global (contact@bluezone.ai)
* @Createdate 04/26/2020, 16:36
*
* This file is part of Bluezone (https://bluezone.ai)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import React, {useState, useEffect} from 'react';
import 'react-native-gesture-handler';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';
// Navigate
import AuthLoading from './app/main/components/AuthLoadingScreen';
import Home from './app/main/components/MainScreen';
import decorateMainAppStart from './app/main/decorateMainAppStart';
import WatchScan from './app/main/components/WatchScanScreen';
import HistoryScan from './app/main/components/HistoryScanScreen';
import Invite from './app/main/components/InviteScreen';
import Register from './app/main/components/RegisterScreen';
import VerifyOTP from './app/main/components/VerifyOTPScreen';
import {registerAppWithFCM} from './app/CloudMessaging';
const Stack = createStackNavigator();
// const prefix = 'mic.bluezone://';
export default function App() {
const [loading, setLoading] = useState(false);
const [initialRoute /* , setInitialRoute*/] = useState('AuthLoading');
const setAuthLoading = () => {
setLoading(true);
// TODO admin: xem thêm lỗi render lần nữa
// setInitialRoute('Home');
};
registerAppWithFCM();
useEffect(() => {}, []);
return (
<NavigationContainer>
<Stack.Navigator
headerMode="none"
mode="card"
initialRoute={initialRoute}>
{!loading ? (
<Stack.Screen
name="AuthLoading"
component={() => <AuthLoading setLoading={setAuthLoading} />}
/>
) : (
<>
<Stack.Screen name="Home" component={decorateMainAppStart(Home)} />
<Stack.Screen name="WatchScan" component={WatchScan} />
<Stack.Screen name="HistoryScan" component={HistoryScan} />
<Stack.Screen name="Invite" component={Invite} />
<Stack.Screen name="Register" component={Register} />
<Stack.Screen name="VerifyOTP" component={VerifyOTP} />
</>
)}
</Stack.Navigator>
</NavigationContainer>
);
}