1
import { NavigationContainer, DefaultTheme } from "@react-navigation/native";
2
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
3
import { createNativeStackNavigator } from "@react-navigation/native-stack";
4
import ExploreScreen from "../screens/ExploreScreen";
5
import StreamScreen from "../screens/StreamScreen";
6
import ClassWorkScreen from "../screens/ClassWorkScreen";
7
import WelcomeScreen from "../screens/WelcomeScreen";
8
import SignInScreen from "../screens/SignInScreen";
9
import SignUpScreen from "../screens/SignUpScreen";
10
import GradeScreen from "../screens/GradeScreen";
11
import ProvinceScreen from "../screens/ProvinceScreen";
13
import ExploreSVG from "../assets/explore.svg";
14
import BlueExploreSVG from "../assets/explore-blue.svg";
15
import StreamSVG from "../assets/stream.svg";
16
import BlueStreamSVG from "../assets/stream-blue.svg";
17
import ClassworkSVG from "../assets/classwork.svg";
18
import BlueClassworkSVG from "../assets/classwork-blue.svg";
20
import { AuthProvider, useAuth } from "../context/AuthContext";
22
const Stack = createNativeStackNavigator();
23
const Tab = createBottomTabNavigator();
25
const tabBarLabelStyle = {
31
function MainTabNavigator() {
32
const { userIsLoggedIn } = useAuth();
33
if (!userIsLoggedIn) return null;
36
initialRouteName="Explore"
38
tabBarActiveTintColor: "#5667FD",
39
tabBarInactiveTintColor: "#364356",
53
component={ExploreScreen}
54
options={({ route }) => ({
56
tabBarIcon: ({ focused, size }) => {
58
<BlueExploreSVG width={size} height={size} />
60
<ExploreSVG width={size} height={size} />
67
component={StreamScreen}
68
options={({ route }) => ({
70
tabBarIcon: ({ focused, size }) => {
72
<BlueStreamSVG width={size} height={size} />
74
<StreamSVG width={size} height={size} />
81
component={ClassWorkScreen}
82
options={({ route }) => ({
84
tabBarIcon: ({ focused, size }) => {
86
<BlueClassworkSVG width={size} height={size} />
88
<ClassworkSVG width={size} height={size} />
98
const { userIsLoggedIn } = useAuth();
99
if (userIsLoggedIn) return null;
102
initialRouteName="Welcome"
106
backgroundColor: "#F0F4F8",
112
component={WelcomeScreen}
119
component={SignInScreen}
120
options={{ title: "", headerBackVisible: false }}
124
component={SignUpScreen}
125
options={{ title: "", headerBackVisible: false }}
129
component={GradeScreen}
130
options={{ title: "", headerBackVisible: false }}
133
name="ProvinceScreen"
134
component={ProvinceScreen}
135
options={{ title: "", headerBackVisible: false }}
144
...DefaultTheme.colors,
145
background: "#F4F5F9",
149
function AppNavigator() {
152
<NavigationContainer theme={MyTheme}>
155
</NavigationContainer>
160
export default AppNavigator;