-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
100 lines (91 loc) · 3.6 KB
/
App.js
File metadata and controls
100 lines (91 loc) · 3.6 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
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
import React, { useEffect } from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import AsyncStorage from '@react-native-async-storage/async-storage';
import { LoginManager, useLoginList } from './StateMangement/LoginManager';
import { WishlistManagement } from './StateMangement/WhistlistManagement';
import { NavigationProvider } from './StateMangement/NavigationProvider';
import Home from './screens/Home';
import Cart from './screens/Cart';
import ProductDescription from './screens/ProductDescription';
import FilteredProduct from './screens/FilteredProduct';
import Profile from './screens/Profile';
import Login from './screens/login/Login';
import Register from './screens/login/Register';
import Bnavigation from './Layouts/Bnavigation';
import HerbAi from './screens/HerbAi/HerbAi';
import CheckoutCart from './screens/CheckoutCart';
import SearchedProduct from './screens/SearchedProduct';
import WishList from './screens/WishList';
import PlaceOrder from './screens/PlaceOrder';
import MyOrder from './screens/MyOrder';
const Stack = createNativeStackNavigator();
export default function App() {
return (
<NavigationProvider>
<LoginManager>
<AppContent />
</LoginManager>
</NavigationProvider>
);
}
function AppContent({navigation}) {
const { isLoggedIn, setIsLoggedIn } = useLoginList();
useEffect(() => {
const checkToken = async () => {
const token = await AsyncStorage.getItem('token');
setIsLoggedIn(!!token); // Set isLoggedIn to true if token exists, else false
};
checkToken();
}, []);
return (
<WishlistManagement>
<NavigationContainer>
<Stack.Navigator
screenOptions={{
animation: 'slide_from_right',
headerRight: () => (
<Cart />
),
headerShown: true,
}}>
{isLoggedIn ? (
<>
<Stack.Screen name='Home' component={Home} options={{headerTitle:"Herb-Ease"}}/>
<Stack.Screen name='Profile' component={Profile} options={{
headerTitle:"",
} }/>
<Stack.Screen name='ProductDescription' component={ProductDescription} />
<Stack.Screen name='Cart' component={Cart} />
<Stack.Screen name='FilteredProducts' component={FilteredProduct} />
<Stack.Screen name='AI' component={HerbAi} options={{
headerTitle:"Fagu-AI",
} }/>
<Stack.Screen name='CheckoutCart' component={CheckoutCart} options={{
headerTitle:"Cart",
} }/>
<Stack.Screen name='WishList' component={WishList} options={{
headerTitle:"Liked By You",
} }/>
<Stack.Screen name='SerachResults' component={SearchedProduct} options={{
headerTitle:"",
} }/>
<Stack.Screen name='PlaceOrder' component={PlaceOrder} options={{
headerTitle:"",
} }/>
<Stack.Screen name='MyOrder' component={MyOrder} options={{
headerTitle:"Order History",
} }/>
</>
) : (
<>
<Stack.Screen name='Login' component={Login} />
<Stack.Screen name='Register' component={Register} />
{/* <Stack.Screen name='Home' component={Home} options={{headerTitle:"Herb-Ease"}}/> */}
</>
)}
</Stack.Navigator>
</NavigationContainer>
</WishlistManagement>
);
}