HomePageNavigator.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import React from 'react'
  2. import SearchPage from '../screens/SearchPage';
  3. import { createBottomTabNavigator } from "@react-navigation/bottom-tabs"
  4. import IonIcon from 'react-native-vector-icons/dist/Ionicons';
  5. import colors from '../theme/colors';
  6. import fonts from '../theme/fonts';
  7. import NewscoutTitleHeader from '../components/organisms/Headers/NewscoutTitleHeader';
  8. import BookmarkNavigator from './BookmarkNavigator';
  9. import LandingPageNavigator from './LandingPageNavigator';
  10. import ProfilePage from '../screens/ProfilePage';
  11. const Tab = createBottomTabNavigator();
  12. // tabBar={props => <BottomTabBar {...props}/>}
  13. const HomePageNavigator = ({ route, navigation }) => {
  14. return (
  15. <Tab.Navigator
  16. screenOptions={({ route }) => ({
  17. tabBarItemStyle: { paddingHorizontal: fonts.getSize(36), flex: 0 },
  18. tabBarStyle: { height: fonts.getSize(64), alignItems: 'center' },
  19. tabBarShowLabel: false,
  20. tabBarIcon: ({ focused, color, size }) => {
  21. let iconName;
  22. let colorName;
  23. switch (route.name) {
  24. case "Landing":
  25. iconName = "home-outline";
  26. break;
  27. case "Search":
  28. iconName = "search-outline";
  29. break
  30. case "Bookmark":
  31. iconName = "bookmark-outline";
  32. break
  33. case "Profile":
  34. iconName = 'person-outline';
  35. break
  36. default:
  37. break;
  38. }
  39. colorName = focused ? colors.topColor : colors.baseColor;
  40. // You can return any component that you like here!
  41. return <IonIcon name={iconName} size={size} color={colorName} />;
  42. },
  43. })}
  44. >
  45. <Tab.Screen
  46. name="Landing"
  47. component={LandingPageNavigator}
  48. options={(navigation) => ({
  49. headerShown: false
  50. })}/>
  51. <Tab.Screen
  52. name="Search"
  53. component={SearchPage}
  54. options={(navigation) => ({
  55. headerShown: false
  56. })} />
  57. <Tab.Screen
  58. name="Bookmark"
  59. component={BookmarkNavigator}
  60. options={(navigation) => ({
  61. headerShown: false
  62. })}
  63. />
  64. <Tab.Screen
  65. name="Profile"
  66. component={ProfilePage}
  67. options={() => ({
  68. header: () => <NewscoutTitleHeader title={"My Profile"} backButtonShown={false}>
  69. </NewscoutTitleHeader>
  70. })}
  71. />
  72. </Tab.Navigator>
  73. )
  74. }
  75. export default HomePageNavigator