forked from AliceMathews/locus
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
54 lines (50 loc) · 1.84 KB
/
App.js
File metadata and controls
54 lines (50 loc) · 1.84 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
import React from "react";
import { NavigationContainer } from "@react-navigation/native";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { MaterialIcons } from "@expo/vector-icons";
import AuthFlowHook from "./src/hooks/AuthFlowHook";
import HomeStackNav from "./src/components/stackNavigators/HomeStackNav";
import UploadStackNav from "./src/components/stackNavigators/UploadStackNav";
import UserStackNav from "./src/components/stackNavigators/UserStackNav";
import SplashScreen from "./src/components/screens/splash/Splash";
const Tab = createBottomTabNavigator();
export default function App() {
const { state, authContext } = AuthFlowHook();
if (state.isLoading) {
// We haven't finished checking for the token yet
return <SplashScreen />;
}
return (
<NavigationContainer>
<Tab.Navigator
screenOptions={({ route }) => ({
tabBarIcon: ({ focused, color, size }) => {
let iconName;
if (route.name === "Home") {
iconName = "home";
} else if (route.name === "Upload") {
iconName = "add-a-photo";
} else if (route.name === "User") {
iconName = "person";
}
return <MaterialIcons name={iconName} size={size} color={color} />;
}
})}
tabBarOptions={{
activeTintColor: "#496382",
inactiveTintColor: "#c5d5d6"
}}
>
<Tab.Screen name="User">
{() => <UserStackNav authContext={authContext} state={state} />}
</Tab.Screen>
<Tab.Screen name="Home">
{() => <HomeStackNav token={state.userToken} />}
</Tab.Screen>
<Tab.Screen name="Upload">
{() => <UploadStackNav token={state.userToken} />}
</Tab.Screen>
</Tab.Navigator>
</NavigationContainer>
);
}