yosadade

root.js

Jul 3rd, 2020
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. import React from 'react';
  2. import {createStackNavigator, TransitionPresets} from '@react-navigation/stack';
  3. import {createBottomTabNavigator} from '@react-navigation/bottom-tabs';
  4. import {createDrawerNavigator} from '@react-navigation/drawer';
  5. import {NavigationContainer} from '@react-navigation/native';
  6.  
  7. import Ionicons from 'react-native-vector-icons/Ionicons';
  8. import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
  9. import Entypo from 'react-native-vector-icons/Entypo';
  10.  
  11. import AboutScreen from '../Tugas15/AboutScreen';
  12. import LoginScreen from '../Tugas15/LoginScreen';
  13. import ProfileScreen from '../Tugas15/ProfileScreen';
  14. import ProjectScreen from './ProjectScreen';
  15. import AddScreen from './AddScreen';
  16.  
  17. const Stack = createStackNavigator();
  18. const Tab = createBottomTabNavigator();
  19. const Drawer = createDrawerNavigator();
  20.  
  21. const MyDrawer = () => {
  22. return (
  23. <Drawer.Navigator initialRouteName="LoginScreen">
  24. <Drawer.Screen name="MainApp" component={MainApp} />
  25. <Drawer.Screen name="AboutScreen" component={AboutScreen} />
  26. <Drawer.Screen name="LoginScreen" component={LoginScreen} />
  27. </Drawer.Navigator>
  28. );
  29. };
  30.  
  31. const MyStack = () => {
  32. return (
  33. <Stack.Navigator
  34. initialRouteName="LoginScreen"
  35. screenOptions={{
  36. headerShown: false,
  37. ...TransitionPresets.SlideFromRightIOS,
  38. }}>
  39. <Stack.Screen name="ProfileScreen" component={ProfileScreen} />
  40. <Stack.Screen name="LoginScreen" component={LoginScreen} />
  41. <Stack.Screen name="AboutScreen" component={AboutScreen} />
  42. <Stack.Screen name="MainApp" component={MainApp} />
  43. <Stack.Screen name="MyDrawer" component={MyDrawer} />
  44. </Stack.Navigator>
  45. );
  46. };
  47.  
  48. const MainApp = () => {
  49. return (
  50. <Tab.Navigator
  51. tabBarOptions={{
  52. activeTintColor: '#0BCAD4',
  53. style: {
  54. height: 60,
  55. backgroundColor: '#FFFFFF',
  56. },
  57. labelStyle: {
  58. fontSize: 12,
  59. marginBottom: 10,
  60. fontWeight: 'bold',
  61. },
  62. tabStyle: {
  63. marginTop: 10,
  64. },
  65. }}
  66. screenOptions={({route}) => ({
  67. tabBarIcon: ({color, size}) => {
  68. if (route.name === 'Project') {
  69. return (
  70. <MaterialCommunityIcons
  71. name="code-greater-than-or-equal"
  72. size={size}
  73. color={color}
  74. />
  75. );
  76. } else if (route.name === 'Add') {
  77. return <Ionicons name="ios-add-circle" size={size} color={color} />;
  78. } else if (route.name === 'About') {
  79. return <Entypo name="code" size={size} color={color} />;
  80. }
  81. },
  82. })}>
  83. <Tab.Screen name="Project" component={ProjectScreen} />
  84. <Tab.Screen name="Add" component={AddScreen} />
  85. <Tab.Screen name="About" component={AboutScreen} />
  86. </Tab.Navigator>
  87. );
  88. };
  89.  
  90. const Router = () => {
  91. return (
  92. <NavigationContainer>
  93. <MyStack />
  94. </NavigationContainer>
  95. );
  96. };
  97.  
  98. export default Router;
Add Comment
Please, Sign In to add comment