Route.tsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import React, { useEffect } from 'react';
  2. import { useFonts } from 'expo-font';
  3. import * as SplashScreen from 'expo-splash-screen';
  4. import { createStackNavigator } from '@react-navigation/stack';
  5. import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
  6. import WelcomeScreen from './src/screens/WelcomeScreen';
  7. import LoginScreen from './src/screens/LoginScreen';
  8. import RegisterScreen from './src/screens/RegisterScreen';
  9. import { NAVIGATION_PAGES } from './src/types';
  10. const ScreenStack = createStackNavigator();
  11. const BottomTab = createBottomTabNavigator();
  12. SplashScreen.preventAutoHideAsync();
  13. const Route = () => {
  14. const [fontsLoaded] = useFonts({
  15. 'redhat-900': require('./assets/fonts/RedHatDisplay-Black-900.ttf'),
  16. 'redhat-700': require('./assets/fonts/RedHatDisplay-Bold-700.ttf')
  17. });
  18. useEffect(() => {
  19. const hideSplashScreen = async () => {
  20. if (fontsLoaded) {
  21. await SplashScreen.hideAsync();
  22. }
  23. };
  24. hideSplashScreen();
  25. }, [fontsLoaded]);
  26. if (!fontsLoaded) {
  27. return null;
  28. }
  29. return (
  30. <ScreenStack.Navigator
  31. screenOptions={{ headerShown: false }}
  32. initialRouteName={NAVIGATION_PAGES.WELCOME}
  33. >
  34. <ScreenStack.Screen name={NAVIGATION_PAGES.WELCOME} component={WelcomeScreen} />
  35. <ScreenStack.Screen name={NAVIGATION_PAGES.LOGIN} component={LoginScreen} />
  36. <ScreenStack.Screen name={NAVIGATION_PAGES.REGISTER} component={RegisterScreen} />
  37. <ScreenStack.Screen name={NAVIGATION_PAGES.IN_APP}>
  38. {() => (
  39. <BottomTab.Navigator
  40. screenOptions={() => ({
  41. headerShown: false
  42. })}
  43. >
  44. <BottomTab.Screen name={NAVIGATION_PAGES.LOCATION_TAB} component={WelcomeScreen} />
  45. <BottomTab.Screen name={NAVIGATION_PAGES.TRAVELS_TAB} component={WelcomeScreen} />
  46. <BottomTab.Screen name={NAVIGATION_PAGES.PROFILE_TAB} component={WelcomeScreen} />
  47. </BottomTab.Navigator>
  48. )}
  49. </ScreenStack.Screen>
  50. </ScreenStack.Navigator>
  51. );
  52. };
  53. export default Route;