-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathApp.js
115 lines (96 loc) · 2.72 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/**
* Sample React Native App
* https://github.com/facebook/react-native
*
* @format
* @flow strict-local
*/
import React, {useContext, useEffect, useReducer, useState} from 'react';
import {ActivityIndicator, LogBox, View} from 'react-native';
import {NavigationContainer, DefaultTheme} from '@react-navigation/native';
import {createNativeStackNavigator} from '@react-navigation/native-stack';
import Login from './Screens/Auth/Login/Login';
import Rooms from './Screens/Rooms/Rooms';
import Room from './Screens/Room/Room';
import Register from './Screens/Auth/Register/Register';
import {getUserMatrixData} from './Utils/Storage';
import {useObservableState} from 'observable-hooks';
import {
AppProvider,
setLoggedInUser,
useUserContext,
} from './Context/AppContext';
import Config from 'react-native-config';
import Screen from './Components/Screen/Screen';
LogBox.ignoreAllLogs(true);
import ChatService from './Services/MatrixChatService';
// let matrix = new MatrixService();
// import matrix from './rn-matrix/services/matrix';
const Stack = createNativeStackNavigator();
const AuthStack = ({}) => {
return (
<Stack.Navigator
screenOptions={{
headerShown: false,
}}>
<Stack.Screen name="Login" component={Login} />
<Stack.Screen name="Register" component={Register} />
</Stack.Navigator>
);
};
const AppStack = () => {
return (
<Stack.Navigator
initialRouteName="Rooms"
screenOptions={{
headerShown: false,
}}>
<Stack.Screen name="Rooms" component={Rooms} />
<Stack.Screen name="Room" component={Room} />
</Stack.Navigator>
);
};
const App = props => {
// const [matrix, setMatrix] = useState(null);
const {store, dispatch} = useUserContext();
console.log('THE STORE ', store);
const [userMatrixData, setUserMatrixData] = useState(null);
const getMatrixData = async () => {
let userMD = await getUserMatrixData();
console.log('THE USER MD DATA', userMD);
if (userMD) {
setUserMatrixData(userMD);
// await dispatch({type: 'LOGGED_IN', data: []});
}
};
useEffect(() => {
getMatrixData();
}, []);
useEffect(() => {
if (userMatrixData) {
// setTimeout(() => {
setLoggedInUser(dispatch, userMatrixData);
console.log('THE STORAGE DATA', userMatrixData);
ChatService.init(userMatrixData);
// }, 2000);
return;
}
}, [userMatrixData]);
return (
<NavigationContainer>
{store && store.isAuthenticated && ChatService.ready ? (
<AppStack />
) : (
<AuthStack />
)}
</NavigationContainer>
);
};
const APPWRAPPER = () => {
return (
<AppProvider>
<App />
</AppProvider>
);
};
export default APPWRAPPER;