LoginStackNavigator.tsx 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import {
  2. NavigationContainer,
  3. DefaultTheme,
  4. DarkTheme,
  5. } from '@react-navigation/native';
  6. import {
  7. createStackNavigator,
  8. CardStyleInterpolators,
  9. } from '@react-navigation/stack';
  10. import * as React from 'react';
  11. import { ColorSchemeName } from 'react-native';
  12. import useModel from 'flooks';
  13. import { useTranslation } from 'react-i18next';
  14. //登录模块
  15. import LoginScreen from '../login/LoginScreen';
  16. import RegisterScreen from '../login/RegisterScreen';
  17. import CertificationScreen from '../login/CertificationScreen';
  18. import TransportationScreen from '../login/TransportationScreen';
  19. import ApplyLocationScreen from '../login/ApplyLocationScreen';
  20. import AuditResultScreen from '../login/AuditResultScreen';
  21. import ForgetPsdScreen from '../login/ForgetPsdScreen';
  22. //地图模块
  23. import SearchMapScreen from '../map/SearchMapScreen';
  24. import { LoginStackParamList } from '../types';
  25. import LinkingConfiguration from './LinkingConfiguration';
  26. import User from '../stores/User';
  27. const MainStack = createStackNavigator<LoginStackParamList>();
  28. export default function Navigation({
  29. colorScheme,
  30. }: {
  31. colorScheme: ColorSchemeName;
  32. }) {
  33. const { initialRouteName } = useModel(User, ['initialRouteName']);
  34. const { t } = useTranslation();
  35. return (
  36. <MainStack.Navigator
  37. initialRouteName={
  38. initialRouteName !== 'Root' ? initialRouteName : 'Login'
  39. }
  40. screenOptions={{
  41. cardOverlayEnabled: true,
  42. cardStyle: { backgroundColor: '#f2f2f2', flex: 1 },
  43. contentStyle: { backgroundColor: '#f2f2f2', flex: 1 },
  44. gestureEnabled: true,
  45. stackPresentation: 'push',
  46. cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS,
  47. headerStyle: {
  48. backgroundColor: '#FFC21C',
  49. elevation: 0,
  50. shadowOffset: {
  51. width: 0,
  52. height: 0,
  53. },
  54. shadowOpacity: 0,
  55. shadowRadius: 0,
  56. },
  57. headerTintColor: '#fff',
  58. headerTitleStyle: {
  59. fontWeight: 'bold',
  60. },
  61. headerTitleAlign: 'center',
  62. headerBackTitleVisible: false,
  63. }}
  64. >
  65. <MainStack.Screen
  66. name="Login"
  67. component={LoginScreen}
  68. options={{ headerShown: false }}
  69. />
  70. <MainStack.Screen
  71. name="Register"
  72. component={RegisterScreen}
  73. options={{ title: t('qi-shou-ke-hu-duan') }}
  74. />
  75. <MainStack.Screen
  76. name="Certification"
  77. component={CertificationScreen}
  78. options={{ title: t('shen-fen-ren-zheng-xin-xi') }}
  79. />
  80. <MainStack.Screen
  81. name="Transportation"
  82. component={TransportationScreen}
  83. options={{ title: t('song-can-jiao-tong-gong-ju-xin-xi') }}
  84. />
  85. <MainStack.Screen
  86. name="ApplyLocation"
  87. component={ApplyLocationScreen}
  88. options={{ title: t('xuan-ze-gong-zuo-di-dian') }}
  89. />
  90. <MainStack.Screen
  91. name="AuditResult"
  92. component={AuditResultScreen}
  93. options={{ title: t('qi-shou-shen-he') }}
  94. />
  95. <MainStack.Screen
  96. name="SearchMap"
  97. options={{ title: t('xuan-ze-di-dian') }}
  98. component={SearchMapScreen}
  99. />
  100. <MainStack.Screen
  101. name="ForgetPsd"
  102. options={{ title: '找回密码' }}
  103. component={ForgetPsdScreen}
  104. />
  105. </MainStack.Navigator>
  106. );
  107. }