diff --git a/front/utils/navigator.tsx b/front/utils/navigator.tsx new file mode 100644 index 0000000..2508182 --- /dev/null +++ b/front/utils/navigator.tsx @@ -0,0 +1,77 @@ +import { + createNavigatorFactory, + type DefaultNavigatorOptions, + type ParamListBase, + type TabActionHelpers, + type TabNavigationState, + TabRouter, + type TabRouterOptions, + useNavigationBuilder, +} from '@react-navigation/native'; +import * as React from 'react'; + +import type { BottomTabNavigationConfig } from '@react-navigation/bottom-tabs/src/types'; +import type { + BottomTabNavigationEventMap, + BottomTabNavigationOptions, +} from '@react-navigation/bottom-tabs'; +import { BottomTabView } from '@react-navigation/bottom-tabs'; + +import ScaffoldMobileCC from '../components/UI/ScaffoldMobileCC'; + +type Props = DefaultNavigatorOptions< + ParamListBase, + TabNavigationState, + BottomTabNavigationOptions, + BottomTabNavigationEventMap +> & + TabRouterOptions & + BottomTabNavigationConfig & { layout?: unknown }; + +function BottomTabNavigator({ + id, + initialRouteName, + backBehavior, + children, + layout, + screenListeners, + screenOptions, + sceneContainerStyle, + ...rest +}: Props) { + const { state, descriptors, navigation, NavigationContent } = useNavigationBuilder< + TabNavigationState, + TabRouterOptions, + TabActionHelpers, + BottomTabNavigationOptions, + BottomTabNavigationEventMap + >(TabRouter, { + id, + initialRouteName, + backBehavior, + children, + // @ts-expect-error The layout property has been added after the last release of react-navigation. + layout, + screenListeners, + screenOptions, + }); + + return ( + + + + ); +} + +export const createCustomNavigator = createNavigatorFactory< + TabNavigationState, + BottomTabNavigationOptions, + BottomTabNavigationEventMap, + typeof BottomTabNavigator +>(BottomTabNavigator);