import React, {useContext, useEffect} from 'react'; import { BottomTabNavigationOptions, createBottomTabNavigator, } from '@react-navigation/bottom-tabs'; import {mainRoutes, share} from '../routes/main'; import {Theme} from '../components/ui/styleUtils'; import {useTranslation} from 'react-i18next'; import {Column} from '../components/ui'; import {GlobalContext} from '../shared/GlobalContext'; import {ScanEvents} from '../machines/bleShare/scan/scanMachine'; import testIDProps from '../shared/commonUtil'; import {SvgImage} from '../components/ui/svg'; import {isIOS} from '../shared/constants'; import {CopilotProvider} from 'react-native-copilot'; import {View} from 'react-native'; import {CopilotTooltip} from '../components/CopilotTooltip'; import {Copilot} from '../components/ui/Copilot'; import LinearGradient from 'react-native-linear-gradient'; import {useNavigation} from '@react-navigation/native'; import {useSelector} from '@xstate/react'; import {selectAuthorizationRequest, selectIsLinkCode} from '../machines/app'; import {BOTTOM_TAB_ROUTES} from '../routes/routesConstants'; const {Navigator, Screen} = createBottomTabNavigator(); export const MainLayout: React.FC = () => { const {t} = useTranslation('MainLayout'); const {appService} = useContext(GlobalContext); const scanService = appService.children.get('scan'); const options: BottomTabNavigationOptions = { tabBarShowLabel: true, tabBarActiveTintColor: Theme.Colors.IconBg, ...Theme.BottomTabBarStyle, }; const navigation = useNavigation(); const linkCode = useSelector(appService, selectIsLinkCode); const authorizationRequest = useSelector( appService, selectAuthorizationRequest, ); useEffect(() => { if (linkCode !== '' || authorizationRequest !== '') { navigation.navigate(BOTTOM_TAB_ROUTES.share); } }, [linkCode, authorizationRequest]); return ( null} animated> ({ tabBarAccessibilityLabel: route.name, ...options, })}> {mainRoutes.map((route, index) => ( { if (route.name == share.name) { scanService?.send(ScanEvents.RESET()); } }, }} options={{ ...route.options, title: t(route.name), tabBarIcon: ({focused}) => ( {route.name === 'home' ? ( focused ? ( {SvgImage[`${route.name}`](focused)} ) : ( {SvgImage[`${route.name}`](focused)} ) ) : ( {focused ? ( {SvgImage[`${route.name}`](focused)} ) : ( {SvgImage[`${route.name}`](focused)} )} } /> )} ), tabBarAccessibilityLabel: isIOS() ? t(route.name) : route.name, tabBarTestID: route.name, }} /> ))} ); };