forked from JuanJouglard/intaapp-lite
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathApp.js
97 lines (88 loc) · 2.44 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import AsyncStorage from '@react-native-community/async-storage';
import React, {useEffect, useState} from 'react';
import Main from './src/core/components/Main';
import prompt from 'react-native-prompt-android';
import {Tour} from './src/guided-tour/Tour';
import {OurSpinner} from './src/core/components/Spinner';
import {Provider} from 'react-redux';
import {store} from './src/store';
import NetInfo from '@react-native-community/netinfo';
import {NetStatusBar} from './src/shared';
import {setUser} from './src/store/actions';
import firestore from '@react-native-firebase/firestore';
function App() {
const [showRealApp, setShowApp] = useState(false);
const [spinner, setSpinner] = useState(false);
const [netStatus, setNetStatus] = useState(true);
const [userName, setUserName] = useState();
useEffect(() => {
if (!netStatus) {
firestore().disableNetwork();
} else {
firestore().enableNetwork();
}
});
NetInfo.addEventListener(state => {
if (netStatus !== state.isConnected) {
setNetStatus(state.isConnected);
}
});
store.subscribe(() => {
const {spinner, userName} = store.getState();
setSpinner(spinner);
setUserName(userName);
});
useEffect(() => {
async function isOldUser() {
let oldUser = await AsyncStorage.getItem('@OldUser');
setShowApp(oldUser);
}
isOldUser();
}, []);
useEffect(() => {
async function getUserName() {
let userName = await AsyncStorage.getItem('@UserName');
if (!userName) {
prompt(
'Ingrese un nombre de usuario',
'',
[
{
text: 'Confirmar',
onPress: name => {
AsyncStorage.setItem('@UserName', name);
store.dispatch(setUser(name));
},
},
],
{
cancelable: false,
},
);
} else {
store.dispatch(setUser(userName));
}
}
getUserName();
}, [userName]);
const hideTour = show => () => {
setShowApp(show);
AsyncStorage.setItem('@OldUser', 'true');
};
if (showRealApp) {
return (
<Provider store={store}>
{!netStatus ? <NetStatusBar /> : null}
<Main onHideTour={hideTour} />
<OurSpinner show={spinner} />
</Provider>
);
} else {
if (showRealApp === false) {
return null;
} else {
return <Tour onDone={hideTour(true)} />;
}
}
}
export default App;