import { Ionicons } from "@expo/vector-icons"; import { createBottomTabNavigator } from "@react-navigation/bottom-tabs"; import { NavigationContainer } from "@react-navigation/native"; import { createStackNavigator } from "@react-navigation/stack"; import i18n from "i18next"; import React, { useEffect } from "react"; import { SafeAreaView } from "react-native-safe-area-context"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { checkUserSession, emailSignInStart, signOutStart, } from "../../redux/user/user.actions"; import { selectBodyshop, selectCurrentUser, } from "../../redux/user/user.selectors"; import ScreenJobDetail from "../screen-job-detail/screen-job-detail.component"; import ScreenJobList from "../screen-job-list/screen-job-list.component"; import ScreenMediaBrowser from "../screen-media-browser/screen-media-browser.component"; import ScreenSettingsComponent from "../screen-settings/screen-settings.component"; import ScreenSignIn from "../screen-sign-in/screen-sign-in.component"; import ScreenSplash from "../screen-splash/screen-splash.component"; const JobStack = createStackNavigator(); const MoreStack = createStackNavigator(); const BottomTabs = createBottomTabNavigator(); const MediaBrowserStack = createStackNavigator(); const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, currentUser: selectCurrentUser, }); const mapDispatchToProps = (dispatch) => ({ checkUserSession: () => dispatch(checkUserSession()), emailSignInStart: (email, password) => dispatch(emailSignInStart({ email, password })), signOutStart: () => dispatch(signOutStart()), }); const JobStackNavigator = () => ( ({ title: i18n.t("joblist.labels.activejobs"), })} component={ScreenJobList} /> ({ title: (route.params && route.params.title) || i18n.t("joblist.labels.detail"), })} /> ); const MediaBrowserStackNavigator = () => ( ); const MoreStackNavigator = () => ( ); const BottomTabsNavigator = () => ( ({ // eslint-disable-next-line react/display-name tabBarIcon: ({ color, size }) => { let iconName; if (route.name === "JobTab") { iconName = "ios-list"; } else if (route.name === "MoreTab") { iconName = "ios-settings"; } else if (route.name === "MediaBrowserTab") { iconName = "ios-photos"; } else { //iconName = "customerservice"; } return ; }, })} tabBarOptions={{ activeTintColor: "dodgerblue", inactiveTintColor: "slategrey", }} > ); export function ScreenMainComponent({ checkUserSession, currentUser, bodyshop, }) { useEffect(() => { checkUserSession(); }, [checkUserSession]); return ( {currentUser.authorized === null ? ( ) : currentUser.authorized ? ( bodyshop ? ( ) : ( ) ) : ( )} ); } export default connect( mapStateToProps, mapDispatchToProps )(ScreenMainComponent);