Advertisement
Guest User

StackNav

a guest
Jul 18th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.21 KB | None | 0 0
  1. import React, { Component } from 'react';
  2. import {
  3. View,
  4. StyleSheet,
  5. } from 'react-native';
  6. import { StackNavigator, DrawerNavigator, withNavigation } from 'react-navigation';
  7. import CardStackStyleInterpolator from 'react-navigation/src/views/CardStack/CardStackStyleInterpolator';
  8. import Root from '../pages/Root';
  9. import Home from '../pages/Home';
  10. import QRCodeReader from '../pages/QRCodeReader'
  11. import Employees from '../pages/Employees';
  12. import User from '../pages/User';
  13. import WelcomeScreen from '../pages/WelcomeScreen';
  14. import ScheduleStripDetails from '../pages/ScheduleStripDetails';
  15. import RecordsMap from '../pages/RecordsMap';
  16. import InfoNet from '../pages/InfoNet';
  17. import About from '../pages/About';
  18. import Help from '../pages/Help';
  19. import PinSecurity from '../pages/PinSecurity';
  20. import DrawerContainer from './DrawerContainer';
  21. import DrawerButton from './DrawerButton';
  22. import UserBackButton from './UserBackButton';
  23. import strings from '../pages/Language';
  24. import funcs from '../pages/functions';
  25.  
  26. let userElevation = 0;
  27. let initialScreen = 'Home';
  28.  
  29. const StackNav = StackNavigator({
  30. // Root: {
  31. // screen: Root,
  32. // navigationOptions:({ navigation }) => ({
  33. // header: null,
  34. // drawerLockMode: 'locked-closed',
  35. // }),
  36. // },
  37. Home: {
  38. screen: Home,
  39. navigationOptions:({ navigation }) => ({
  40. title: `${strings.signin_title}`,
  41. headerLeft: null,
  42. drawerLockMode: 'locked-closed',
  43. }),
  44. },
  45. WelcomeScreen: {
  46. screen: WelcomeScreen,
  47. navigationOptions:({ navigation }) => ({
  48. header: null,
  49. drawerLockMode: 'locked-closed',
  50. }),
  51. },
  52. QRCodeReader: {
  53. screen: QRCodeReader,
  54. navigationOptions: ({navigation}) => ({
  55. title: 'Scan QR Code',
  56. drawerLockMode: 'locked-closed'
  57. }),
  58. },
  59. Employees: {
  60. screen: Employees,
  61. navigationOptions:({ navigation }) => ({
  62. title:`${strings.home_title}`,
  63. headerLeft: <DrawerButton navigation={navigation}/>,
  64. // drawerLockMode: funcs.getDrawerLock()
  65. }),
  66. },
  67. User: {
  68. screen: User,
  69. navigationOptions:({navigation}) => ({
  70. headerLeft: <UserBackButton navigation={navigation}/>,
  71. headerStyle: {
  72. elevation: 0,
  73. backgroundColor: '#ef9b4c',
  74. height: 80,
  75. paddingTop: 20
  76. },
  77. headerTintColor: '#ffffff',
  78. headerTitleStyle: {
  79. width: '100%',
  80. },
  81. drawerLockMode: 'locked-closed',
  82. }),
  83. },
  84. ScheduleStripDetails: {
  85. screen: ScheduleStripDetails,
  86. navigationOptions: ({navigation}) => ({
  87. title: `${strings.details_title}`,
  88. headerStyle: {
  89. elevation: 0,
  90. backgroundColor: '#ef9b4c',
  91. height: 80,
  92. paddingTop: 20
  93. },
  94. headerTintColor: '#ffffff',
  95. headerTitleStyle: {
  96. width: '100%',
  97. },
  98. drawerLockMode: 'locked-closed'
  99. })
  100. },
  101. RecordsMap: {
  102. screen: RecordsMap,
  103. navigationOptions: ({navigation}) => ({
  104. drawerLockMode: 'locked-closed'
  105. })
  106. },
  107. PinSecurity: {
  108. screen: PinSecurity,
  109. navigationOptions:({ navigation }) => ({
  110. // headerLeft: <UserBackButton navigation={navigation}/>,
  111. title:/*'Employee Pin'*/`${strings.pin_title}`,
  112. drawerLockMode: 'locked-closed',
  113. })
  114. },
  115. About: {
  116. screen: About,
  117. navigationOptions:({ navigation }) => ({
  118. headerLeft: <DrawerButton navigation={navigation}/>,
  119. title:`${strings.about_title}`,
  120. })
  121. },
  122. Help: {
  123. screen: Help,
  124. navigationOptions:({navigation}) => ({
  125. headerLeft: <DrawerButton navigation={navigation}/>,
  126. title: /*'How it works?'*/`${strings.help_title}`,
  127. })
  128. }
  129. }, {
  130. headerMode: 'screen',
  131. navigationOptions: {
  132. headerStyle: {
  133. backgroundColor: '#ef9b4c',
  134. height: 80,
  135. paddingTop: 20
  136. },
  137. headerTintColor: '#ffffff',
  138. headerTitleStyle: {
  139. width: '100%',
  140. }
  141. },
  142. transitionConfig: () => ({ screenInterpolator: CardStackStyleInterpolator.forHorizontal }),
  143. // transitionConfig: () => ({ screenInterpolator: () => null }),
  144. });
  145.  
  146. const DrawerNav = DrawerNavigator({
  147. Employees: {
  148. screen: StackNav,
  149. navigationOptions: ({navigation}) => ({
  150. headerStyle: {backgroundColor: '#ef9b4c'},
  151. title: 'Employees',
  152. headerTintColor: '#ffffff',
  153. // drawerLockMode: 'locked-closed'
  154. })
  155. },
  156. About: {
  157. screen: About,
  158. },
  159. Help: {
  160. screen:Help,
  161.  
  162. },
  163. Home: {
  164. screen: Home,
  165. navigationOptions: {
  166. headerStyle: {backgroundColor: '#ef9b4c'},
  167. headerTintColor: '#ffffff',
  168. }
  169. },
  170. InfoNet: {
  171. screen: InfoNet,
  172. },
  173. transitionConfig: () => ({ screenInterpolator: () => null }),
  174. }, {contentComponent: DrawerContainer});
  175.  
  176. const defaultGetStateForAction = DrawerNav.router.getStateForAction;
  177.  
  178. DrawerNav.router.getStateForAction = (action, state) => {
  179. //use 'DrawerOpen' to capture drawer open event
  180. if (state && action.type === 'Navigation/NAVIGATE' && action.routeName === 'DrawerClose') {
  181. // console.log('DrawerClose');
  182. //write the code you want to deal with 'DrawerClose' event
  183. }
  184. else if (state && action.type === 'Navigation/NAVIGATE' && action.routeName === 'DrawerOpen') {
  185. // console.log('DrawerOpen');
  186. //write the code you want to deal with 'DrawerOpen' event
  187. // new Employees().setDrawerOpen();
  188. }
  189. return defaultGetStateForAction(action, state);
  190. };
  191.  
  192. export default DrawerNav;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement