yosadade

router.js

Jul 3rd, 2020
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 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>
  24. <Drawer.Screen name="MainApp" component={MainApp} />
  25. <Drawer.Screen name="Profile" component={ProfileScreen} />
  26. </Drawer.Navigator>
  27. );
  28. };
  29.  
  30. const MyStack = () => {
  31. return (
  32. <Stack.Navigator
  33. initialRouteName="LoginScreen"
  34. screenOptions={{
  35. headerShown: false,
  36. ...TransitionPresets.SlideFromRightIOS,
  37. }}>
  38. <Stack.Screen name="LoginScreen" component={LoginScreen} />
  39. <Stack.Screen name="MyDrawer" component={MyDrawer} />
  40. </Stack.Navigator>
  41. );
  42. };
  43.  
  44. const MainApp = () => {
  45. return (
  46. <Tab.Navigator
  47. tabBarOptions={{
  48. activeTintColor: '#0BCAD4',
  49. style: {
  50. height: 60,
  51. backgroundColor: '#FFFFFF',
  52. },
  53. labelStyle: {
  54. fontSize: 12,
  55. marginBottom: 10,
  56. fontWeight: 'bold',
  57. },
  58. tabStyle: {
  59. marginTop: 10,
  60. },
  61. }}
  62. screenOptions={({route}) => ({
  63. tabBarIcon: ({color, size}) => {
  64. if (route.name === 'Project') {
  65. return (
  66. <MaterialCommunityIcons
  67. name="code-greater-than-or-equal"
  68. size={size}
  69. color={color}
  70. />
  71. );
  72. } else if (route.name === 'Add') {
  73. return <Ionicons name="ios-add-circle" size={size} color={color} />;
  74. } else if (route.name === 'About') {
  75. return <Entypo name="code" size={size} color={color} />;
  76. }
  77. },
  78. })}>
  79. <Tab.Screen name="Project" component={ProjectScreen} />
  80. <Tab.Screen name="Add" component={AddScreen} />
  81. <Tab.Screen name="About" component={AboutScreen} />
  82. </Tab.Navigator>
  83. );
  84. };
  85.  
  86. const Router = () => {
  87. return (
  88. <NavigationContainer>
  89. <MyStack />
  90. </NavigationContainer>
  91. );
  92. };
  93.  
  94. export default Router;
Add Comment
Please, Sign In to add comment