-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.js
122 lines (109 loc) · 3.08 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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/**
* Sample React Native App
* https://github.com/facebook/react-native
*
* @format
* @flow
*/
import React, { Component } from "react";
import { Platform, StyleSheet, Text, View } from "react-native";
import {
createStackNavigator,
createAppContainer,
createBottomTabNavigator,
createSwitchNavigator
} from "react-navigation";
import Icon from "react-native-vector-icons/MaterialCommunityIcons";
import TimeTableScreen from "./src/screens/TimeTableScreen";
import CardEditScreen from "./src/screens/CardEditScreen";
import AnalysisScreen from "./src/screens/AnalysisScreen";
import ChannelScreen from "./src/screens/ChannelScreen";
import ProfileScreen from "./src/screens/profileScreen";
import CourseViewScreen from "./src/screens/CourseViewScreen";
import CourseEditScreen from "./src/screens/CourseEditScreen";
import LoginScreen from "./src/screens/Auth/Login";
import LoadingScreen from "./src/screens/Auth/Loading";
import SignUpScreen from "./src/screens/Auth/SignUp";
import ResetPasswordScreen from "./src/screens/Auth/ResetPassword";
const TimeTableNavigator = createStackNavigator(
{
TimeTable: { screen: TimeTableScreen },
CardEdit: { screen: CardEditScreen }
},
{
initialRouteName: "TimeTable"
}
);
const profileScreenNavigation = createStackNavigator({
ProfileDetails: { screen: ProfileScreen },
CourseView: { screen: CourseViewScreen },
CourseEdit: { screen: CourseEditScreen }
});
const AppTabNavigator = createBottomTabNavigator(
{
TimeTable: TimeTableNavigator,
Analysis: { screen: AnalysisScreen },
Channels: { screen: ChannelScreen },
Profile: profileScreenNavigation
},
{
defaultNavigationOptions: ({ navigation }) => ({
tabBarIcon: ({ focused, horizontal, tintColor }) => {
// find icons here https://materialdesignicons.com/
const { routeName } = navigation.state;
let iconName;
switch (routeName) {
case "TimeTable": {
iconName = "timetable";
break;
}
case "Analysis": {
iconName = "chart-donut-variant";
break;
}
case "Channels": {
iconName = "forum";
break;
}
case "Profile": {
iconName = "account-badge-horizontal";
break;
}
}
return <Icon name={iconName} size={25} color={tintColor} />;
}
}),
tabBarOptions: {
activeTintColor: "red",
inactiveTintColor: "black"
}
}
);
const AppAuthNavigator = createStackNavigator(
{
Login: { screen: LoginScreen },
SignUp: { screen: SignUpScreen },
ResetPassword: { screen: ResetPasswordScreen }
},
{
initialRouteName: "Login"
}
);
//TODO: fix init routname
const AppMainSwitch = createSwitchNavigator(
{
AuthLoading: LoadingScreen,
App: AppTabNavigator,
Auth: AppAuthNavigator
},
{
initialRouteName: "App"
}
);
const AppContainer = createAppContainer(AppMainSwitch);
console.disableYellowBox = true;
export default class App extends React.Component {
render() {
return <AppContainer />;
}
}