-
-
Notifications
You must be signed in to change notification settings - Fork 5k
/
createMaterialBottomTabNavigator.tsx
66 lines (61 loc) · 1.5 KB
/
createMaterialBottomTabNavigator.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import * as React from 'react';
import {
useNavigationBuilder,
createNavigatorFactory,
DefaultNavigatorOptions,
TabRouter,
TabRouterOptions,
TabNavigationState,
TabActionHelpers,
ParamListBase,
} from '@react-navigation/native';
import MaterialBottomTabView from '../views/MaterialBottomTabView';
import type {
MaterialBottomTabNavigationConfig,
MaterialBottomTabNavigationOptions,
MaterialBottomTabNavigationEventMap,
} from '../types';
type Props = DefaultNavigatorOptions<MaterialBottomTabNavigationOptions> &
TabRouterOptions &
MaterialBottomTabNavigationConfig;
function MaterialBottomTabNavigator({
initialRouteName,
backBehavior,
children,
screenOptions,
...rest
}: Props) {
const {
state,
descriptors,
navigation,
NavigationContent,
} = useNavigationBuilder<
TabNavigationState<ParamListBase>,
TabRouterOptions,
TabActionHelpers<ParamListBase>,
MaterialBottomTabNavigationOptions,
MaterialBottomTabNavigationEventMap
>(TabRouter, {
initialRouteName,
backBehavior,
children,
screenOptions,
});
return (
<NavigationContent>
<MaterialBottomTabView
{...rest}
state={state}
navigation={navigation}
descriptors={descriptors}
/>
</NavigationContent>
);
}
export default createNavigatorFactory<
TabNavigationState<ParamListBase>,
MaterialBottomTabNavigationOptions,
MaterialBottomTabNavigationEventMap,
typeof MaterialBottomTabNavigator
>(MaterialBottomTabNavigator);