LoginStackNavigator.tsx 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. //地图模块
  22. import SearchMapScreen from '../map/SearchMapScreen';
  23. import { LoginStackParamList } from '../types';
  24. import LinkingConfiguration from './LinkingConfiguration';
  25. import User from '../stores/User';
  26. const MainStack = createStackNavigator<LoginStackParamList>();
  27. export default function Navigation({
  28. colorScheme,
  29. }: {
  30. colorScheme: ColorSchemeName;
  31. }) {
  32. const { initialRouteName } = useModel(User, ['initialRouteName']);
  33. const { t } = useTranslation();
  34. return (
  35. <MainStack.Navigator
  36. initialRouteName={
  37. initialRouteName !== 'Root' ? initialRouteName : 'Login'
  38. }
  39. screenOptions={{
  40. cardOverlayEnabled: true,
  41. cardStyle: { backgroundColor: '#f2f2f2', flex: 1 },
  42. contentStyle: { backgroundColor: '#f2f2f2', flex: 1 },
  43. gestureEnabled: true,
  44. stackPresentation: 'push',
  45. cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS,
  46. headerStyle: {
  47. backgroundColor: '#FFC21C',
  48. },
  49. headerTintColor: '#fff',
  50. headerTitleStyle: {
  51. fontWeight: 'bold',
  52. },
  53. headerTitleAlign: 'center',
  54. headerBackTitleVisible: false,
  55. }}
  56. >
  57. <MainStack.Screen
  58. name="Login"
  59. component={LoginScreen}
  60. options={{ headerShown: false }}
  61. />
  62. <MainStack.Screen
  63. name="Register"
  64. component={RegisterScreen}
  65. options={{ title: t('qi-shou-ke-hu-duan') }}
  66. />
  67. <MainStack.Screen
  68. name="Certification"
  69. component={CertificationScreen}
  70. options={{ title: t('shen-fen-ren-zheng-xin-xi') }}
  71. />
  72. <MainStack.Screen
  73. name="Transportation"
  74. component={TransportationScreen}
  75. options={{ title: t('song-can-jiao-tong-gong-ju-xin-xi') }}
  76. />
  77. <MainStack.Screen
  78. name="ApplyLocation"
  79. component={ApplyLocationScreen}
  80. options={{ title: t('xuan-ze-gong-zuo-di-dian') }}
  81. />
  82. <MainStack.Screen
  83. name="AuditResult"
  84. component={AuditResultScreen}
  85. options={{ title: t('qi-shou-shen-he') }}
  86. />
  87. <MainStack.Screen
  88. name="SearchMap"
  89. options={{ title: t('xuan-ze-di-dian') }}
  90. component={SearchMapScreen}
  91. />
  92. </MainStack.Navigator>
  93. );
  94. }