-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.js
56 lines (54 loc) · 1.97 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
import { createDrawerNavigator } from "@react-navigation/drawer";
import { NavigationContainer } from "@react-navigation/native";
import { Login } from "./screens/Login";
import { Home } from "./screens/Home";
import DrawerItems from "./constants/DrawerItems";
import { FontAwesome5 } from "@expo/vector-icons";
import { CreateMeets } from "./screens/CreateMeets";
import { Meets } from "./screens/Meets";
import { UserPage } from "./screens/UserPage";
import { UserProvider } from "./contexts/user-context.js";
import { EventProvider } from "./contexts/event-context.js";
import { ViewedUserProvider } from "./contexts/viewed-user-context.js";
const Drawer = createDrawerNavigator();
export default function App() {
return (
<UserProvider>
<EventProvider>
<ViewedUserProvider>
<NavigationContainer>
<Drawer.Navigator drawerType="front" initialRouteName="Login">
{DrawerItems.map((drawer) => (
<Drawer.Screen
key={drawer.name}
name={drawer.name}
component={
drawer.name === "Login"
? Login
: drawer.name === "Create Event"
? CreateMeets
: drawer.name === "Find Event"
? Meets
: drawer.name === "User Page"
? UserPage
: Home
}
options={{
drawerIcon: ({ focused }) => (
<FontAwesome5
name={drawer.iconName}
size={24}
color={focused ? "#C37B89" : "black"}
/>
),
headerShown: true,
}}
/>
))}
</Drawer.Navigator>
</NavigationContainer>
</ViewedUserProvider>
</EventProvider>
</UserProvider>
);
}