-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.js
106 lines (98 loc) · 4.47 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
import React, { useEffect, useState } from "react";
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { Provider } from 'react-redux';
import {store, persistor} from './src/redux/configureStore';
import { PersistGate } from 'redux-persist/integration/react';
import Storage from "./src/services/storage";
import Login from "./src/pages/Login";
import Dashboard from "./src/pages/Dashboard";
import RegisterFarmer from "./src/pages/RegisterFarmer";
import NewFarmerDebit from "./src/pages/NewFarmerDebit";
import CardRecharge from "./src/pages/CardRecharge";
import FarmerOrders from "./src/pages/FarmerOrders";
import Listings from "./src/pages/Listings";
import { AuthContext } from "./src/context/AuthContext";
import { ThemeContext } from "./src/context/ThemeContext";
if(__DEV__) {
import('./ReactotronConfig').then(() => console.log('Reactotron Configured'))
}
const Stack = createNativeStackNavigator();
function App () {
const [ user, setUser ] = useState(null);
const appColor = "#000b6e";
useEffect(() => {
//check for already logged user
(async function getSavedUser() {
const loggedInAlready = await Storage.getLoggedInUser();
if (loggedInAlready) {
setUser(loggedInAlready);
}
})();
}, []);
return (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<AuthContext.Provider value={{user, setUser}}>
<ThemeContext.Provider value={{ appColor }}>
<NavigationContainer>
<Stack.Navigator screenOptions={{
headerShown: false
}}>
{!user ? (
<>
<Stack.Screen name="Login" component={ Login } />
</>
) :
(
<>
<Stack.Screen name="Dashboard" component={ Dashboard } />
<Stack.Screen name="RegisterFarmer" component={ RegisterFarmer } options={{
headerShown: true,
headerTitle:"Register Farmer",
headerStyle: {
backgroundColor: appColor
}, headerTitleStyle: {
color: '#fff'
}, headerTintColor: '#fff'
}} />
<Stack.Screen name="FarmerOrders" component={ FarmerOrders } options={{
headerShown: true,
headerTitle:"Farmer Order",
headerStyle: {
backgroundColor: appColor
}, headerTitleStyle: {
color: '#fff'
}, headerTintColor: '#fff'
}} />
<Stack.Screen name="NewFarmerDebit" component={ NewFarmerDebit } options={{
headerShown: true,
headerTitle:"New Farmer Debit",
headerStyle: {
backgroundColor: appColor
}, headerTitleStyle: {
color: '#fff'
}, headerTintColor: '#fff'
}} />
<Stack.Screen name="CardRecharge" component={ CardRecharge } options={{
headerShown: true,
headerTitle:"Card Recharge",
headerStyle: {
backgroundColor: appColor
}, headerTitleStyle: {
color: '#fff'
}, headerTintColor: '#fff'
}}/>
<Stack.Screen name="Listings" component={ Listings } />
</>
)
}
</Stack.Navigator>
</NavigationContainer>
</ThemeContext.Provider>
</AuthContext.Provider>
</PersistGate>
</Provider>
);
}
export default App;