mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-04-30 05:15:25 +08:00
59 lines
1.4 KiB
TypeScript
59 lines
1.4 KiB
TypeScript
import * as React from 'react';
|
|
import {
|
|
useNavigationBuilder,
|
|
createNavigatorFactory,
|
|
DefaultNavigatorOptions,
|
|
TabRouter,
|
|
TabRouterOptions,
|
|
TabNavigationState,
|
|
TabActionHelpers,
|
|
ParamListBase,
|
|
} from '@react-navigation/native';
|
|
import MaterialTopTabView from '../views/MaterialTopTabView';
|
|
import type {
|
|
MaterialTopTabNavigationConfig,
|
|
MaterialTopTabNavigationOptions,
|
|
MaterialTopTabNavigationEventMap,
|
|
} from '../types';
|
|
|
|
type Props = DefaultNavigatorOptions<MaterialTopTabNavigationOptions> &
|
|
TabRouterOptions &
|
|
MaterialTopTabNavigationConfig;
|
|
|
|
function MaterialTopTabNavigator({
|
|
initialRouteName,
|
|
backBehavior,
|
|
children,
|
|
screenOptions,
|
|
...rest
|
|
}: Props) {
|
|
const { state, descriptors, navigation } = useNavigationBuilder<
|
|
TabNavigationState<ParamListBase>,
|
|
TabRouterOptions,
|
|
TabActionHelpers<ParamListBase>,
|
|
MaterialTopTabNavigationOptions,
|
|
MaterialTopTabNavigationEventMap
|
|
>(TabRouter, {
|
|
initialRouteName,
|
|
backBehavior,
|
|
children,
|
|
screenOptions,
|
|
});
|
|
|
|
return (
|
|
<MaterialTopTabView
|
|
{...rest}
|
|
state={state}
|
|
navigation={navigation}
|
|
descriptors={descriptors}
|
|
/>
|
|
);
|
|
}
|
|
|
|
export default createNavigatorFactory<
|
|
TabNavigationState<ParamListBase>,
|
|
MaterialTopTabNavigationOptions,
|
|
MaterialTopTabNavigationEventMap,
|
|
typeof MaterialTopTabNavigator
|
|
>(MaterialTopTabNavigator);
|