@react-navigation/material-top-tabs 7.0.0-alpha.8 → 7.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/navigators/createMaterialTopTabNavigator.js +20 -17
- package/lib/commonjs/navigators/createMaterialTopTabNavigator.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/TabAnimationContext.js +1 -1
- package/lib/commonjs/utils/TabAnimationContext.js.map +1 -1
- package/lib/commonjs/utils/useTabAnimation.js +1 -1
- package/lib/commonjs/utils/useTabAnimation.js.map +1 -1
- package/lib/commonjs/views/MaterialTopTabBar.js +60 -107
- package/lib/commonjs/views/MaterialTopTabBar.js.map +1 -1
- package/lib/commonjs/views/MaterialTopTabView.js +23 -33
- package/lib/commonjs/views/MaterialTopTabView.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigators/createMaterialTopTabNavigator.js +18 -15
- package/lib/module/navigators/createMaterialTopTabNavigator.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/TabAnimationContext.js.map +1 -1
- package/lib/module/utils/useTabAnimation.js.map +1 -1
- package/lib/module/views/MaterialTopTabBar.js +60 -107
- package/lib/module/views/MaterialTopTabBar.js.map +1 -1
- package/lib/module/views/MaterialTopTabView.js +22 -32
- package/lib/module/views/MaterialTopTabView.js.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/navigators/createMaterialTopTabNavigator.d.ts +14 -9
- package/lib/typescript/src/navigators/createMaterialTopTabNavigator.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +6 -7
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/views/MaterialTopTabBar.d.ts.map +1 -1
- package/package.json +13 -13
- package/src/index.tsx +1 -0
- package/src/navigators/createMaterialTopTabNavigator.tsx +33 -7
- package/src/types.tsx +14 -7
- package/src/views/MaterialTopTabBar.tsx +59 -70
|
@@ -1,28 +1,63 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
2
|
import { Text } from '@react-navigation/elements';
|
|
3
|
-
import { useLocale, useTheme } from '@react-navigation/native';
|
|
3
|
+
import { useLinkBuilder, useLocale, useTheme } from '@react-navigation/native';
|
|
4
4
|
import Color from 'color';
|
|
5
5
|
import * as React from 'react';
|
|
6
|
-
import { StyleSheet
|
|
6
|
+
import { StyleSheet } from 'react-native';
|
|
7
7
|
import { TabBar, TabBarIndicator } from 'react-native-tab-view';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
const MaterialLabel = ({
|
|
9
|
+
color,
|
|
10
|
+
labelText,
|
|
11
|
+
labelStyle,
|
|
12
|
+
allowScaling
|
|
13
|
+
}) => {
|
|
14
|
+
return /*#__PURE__*/React.createElement(Text, {
|
|
15
|
+
style: [{
|
|
16
|
+
color
|
|
17
|
+
}, styles.label, labelStyle],
|
|
18
|
+
allowFontScaling: allowScaling
|
|
19
|
+
}, labelText);
|
|
20
|
+
};
|
|
21
|
+
const renderLabel = props => {
|
|
22
|
+
return /*#__PURE__*/React.createElement(MaterialLabel, props);
|
|
23
|
+
};
|
|
24
|
+
export function MaterialTopTabBar({
|
|
25
|
+
state,
|
|
26
|
+
navigation,
|
|
27
|
+
descriptors,
|
|
28
|
+
...rest
|
|
29
|
+
}) {
|
|
15
30
|
const {
|
|
16
31
|
colors
|
|
17
32
|
} = useTheme();
|
|
18
33
|
const {
|
|
19
34
|
direction
|
|
20
35
|
} = useLocale();
|
|
36
|
+
const {
|
|
37
|
+
buildHref
|
|
38
|
+
} = useLinkBuilder();
|
|
21
39
|
const focusedOptions = descriptors[state.routes[state.index].key].options;
|
|
22
40
|
const activeColor = focusedOptions.tabBarActiveTintColor ?? colors.text;
|
|
23
41
|
const inactiveColor = focusedOptions.tabBarInactiveTintColor ?? Color(activeColor).alpha(0.5).rgb().string();
|
|
42
|
+
const tabBarOptions = Object.fromEntries(state.routes.map(route => {
|
|
43
|
+
const {
|
|
44
|
+
options
|
|
45
|
+
} = descriptors[route.key];
|
|
46
|
+
return [route.key, {
|
|
47
|
+
href: buildHref(route.name, route.params),
|
|
48
|
+
testID: options.tabBarButtonTestID,
|
|
49
|
+
accessibilityLabel: options.tabBarAccessibilityLabel,
|
|
50
|
+
badge: options.tabBarBadge,
|
|
51
|
+
icon: options.tabBarShowIcon === false ? undefined : options.tabBarIcon,
|
|
52
|
+
label: options.tabBarShowLabel === false ? undefined : renderLabel,
|
|
53
|
+
labelAllowFontScaling: options.tabBarAllowFontScaling,
|
|
54
|
+
labelStyle: options.tabBarLabelStyle,
|
|
55
|
+
labelText: options.tabBarShowLabel === false ? undefined : options.title !== undefined ? options.title : route.name
|
|
56
|
+
}];
|
|
57
|
+
}));
|
|
24
58
|
return /*#__PURE__*/React.createElement(TabBar, _extends({}, rest, {
|
|
25
59
|
navigationState: state,
|
|
60
|
+
options: tabBarOptions,
|
|
26
61
|
direction: direction,
|
|
27
62
|
scrollEnabled: focusedOptions.tabBarScrollEnabled,
|
|
28
63
|
bounces: focusedOptions.tabBarBounces,
|
|
@@ -41,23 +76,10 @@ export function MaterialTopTabBar(_ref) {
|
|
|
41
76
|
style: [{
|
|
42
77
|
backgroundColor: colors.card
|
|
43
78
|
}, focusedOptions.tabBarStyle],
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return descriptors[route.key].options.tabBarAccessibilityLabel;
|
|
49
|
-
},
|
|
50
|
-
getTestID: _ref3 => {
|
|
51
|
-
let {
|
|
52
|
-
route
|
|
53
|
-
} = _ref3;
|
|
54
|
-
return descriptors[route.key].options.tabBarButtonTestID;
|
|
55
|
-
},
|
|
56
|
-
onTabPress: _ref4 => {
|
|
57
|
-
let {
|
|
58
|
-
route,
|
|
59
|
-
preventDefault
|
|
60
|
-
} = _ref4;
|
|
79
|
+
onTabPress: ({
|
|
80
|
+
route,
|
|
81
|
+
preventDefault
|
|
82
|
+
}) => {
|
|
61
83
|
const event = navigation.emit({
|
|
62
84
|
type: 'tabPress',
|
|
63
85
|
target: route.key,
|
|
@@ -67,80 +89,16 @@ export function MaterialTopTabBar(_ref) {
|
|
|
67
89
|
preventDefault();
|
|
68
90
|
}
|
|
69
91
|
},
|
|
70
|
-
onTabLongPress:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
let {
|
|
81
|
-
route,
|
|
82
|
-
focused,
|
|
83
|
-
color
|
|
84
|
-
} = _ref6;
|
|
85
|
-
const {
|
|
86
|
-
options
|
|
87
|
-
} = descriptors[route.key];
|
|
88
|
-
if (options.tabBarShowIcon === false) {
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
if (options.tabBarIcon !== undefined) {
|
|
92
|
-
const icon = options.tabBarIcon({
|
|
93
|
-
focused,
|
|
94
|
-
color
|
|
95
|
-
});
|
|
96
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
97
|
-
style: [styles.icon, options.tabBarIconStyle]
|
|
98
|
-
}, icon);
|
|
99
|
-
}
|
|
100
|
-
return null;
|
|
101
|
-
},
|
|
102
|
-
renderLabel: _ref7 => {
|
|
103
|
-
let {
|
|
104
|
-
route,
|
|
105
|
-
focused,
|
|
106
|
-
color
|
|
107
|
-
} = _ref7;
|
|
108
|
-
const {
|
|
109
|
-
options
|
|
110
|
-
} = descriptors[route.key];
|
|
111
|
-
if (options.tabBarShowLabel === false) {
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
const label = options.tabBarLabel !== undefined ? options.tabBarLabel : options.title !== undefined ? options.title : route.name;
|
|
115
|
-
if (typeof label === 'string') {
|
|
116
|
-
return /*#__PURE__*/React.createElement(Text, {
|
|
117
|
-
style: [{
|
|
118
|
-
color
|
|
119
|
-
}, styles.label, options.tabBarLabelStyle],
|
|
120
|
-
allowFontScaling: options.tabBarAllowFontScaling
|
|
121
|
-
}, label);
|
|
122
|
-
}
|
|
123
|
-
const children = typeof options.tabBarLabel === 'string' ? options.tabBarLabel : options.title !== undefined ? options.title : route.name;
|
|
124
|
-
return label({
|
|
125
|
-
focused,
|
|
126
|
-
color,
|
|
127
|
-
children
|
|
128
|
-
});
|
|
129
|
-
},
|
|
130
|
-
renderBadge: _ref8 => {
|
|
131
|
-
let {
|
|
132
|
-
route
|
|
133
|
-
} = _ref8;
|
|
134
|
-
const {
|
|
135
|
-
tabBarBadge
|
|
136
|
-
} = descriptors[route.key].options;
|
|
137
|
-
return tabBarBadge?.() ?? null;
|
|
138
|
-
},
|
|
139
|
-
renderIndicator: _ref9 => {
|
|
140
|
-
let {
|
|
141
|
-
navigationState: state,
|
|
142
|
-
...rest
|
|
143
|
-
} = _ref9;
|
|
92
|
+
onTabLongPress: ({
|
|
93
|
+
route
|
|
94
|
+
}) => navigation.emit({
|
|
95
|
+
type: 'tabLongPress',
|
|
96
|
+
target: route.key
|
|
97
|
+
}),
|
|
98
|
+
renderIndicator: ({
|
|
99
|
+
navigationState: state,
|
|
100
|
+
...rest
|
|
101
|
+
}) => {
|
|
144
102
|
return focusedOptions.tabBarIndicator ? focusedOptions.tabBarIndicator({
|
|
145
103
|
state: state,
|
|
146
104
|
...rest
|
|
@@ -151,14 +109,9 @@ export function MaterialTopTabBar(_ref) {
|
|
|
151
109
|
}));
|
|
152
110
|
}
|
|
153
111
|
const styles = StyleSheet.create({
|
|
154
|
-
icon: {
|
|
155
|
-
height: 24,
|
|
156
|
-
width: 24
|
|
157
|
-
},
|
|
158
112
|
label: {
|
|
159
113
|
textAlign: 'center',
|
|
160
|
-
|
|
161
|
-
fontSize: 13,
|
|
114
|
+
fontSize: 14,
|
|
162
115
|
margin: 4,
|
|
163
116
|
backgroundColor: 'transparent'
|
|
164
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Text","useLocale","useTheme","Color","React","StyleSheet","
|
|
1
|
+
{"version":3,"names":["Text","useLinkBuilder","useLocale","useTheme","Color","React","StyleSheet","TabBar","TabBarIndicator","MaterialLabel","color","labelText","labelStyle","allowScaling","createElement","style","styles","label","allowFontScaling","renderLabel","props","MaterialTopTabBar","state","navigation","descriptors","rest","colors","direction","buildHref","focusedOptions","routes","index","key","options","activeColor","tabBarActiveTintColor","text","inactiveColor","tabBarInactiveTintColor","alpha","rgb","string","tabBarOptions","Object","fromEntries","map","route","href","name","params","testID","tabBarButtonTestID","accessibilityLabel","tabBarAccessibilityLabel","badge","tabBarBadge","icon","tabBarShowIcon","undefined","tabBarIcon","tabBarShowLabel","labelAllowFontScaling","tabBarAllowFontScaling","tabBarLabelStyle","title","_extends","navigationState","scrollEnabled","tabBarScrollEnabled","bounces","tabBarBounces","pressColor","tabBarPressColor","pressOpacity","tabBarPressOpacity","tabStyle","tabBarItemStyle","indicatorStyle","backgroundColor","primary","tabBarIndicatorStyle","gap","tabBarGap","android_ripple","tabBarAndroidRipple","indicatorContainerStyle","tabBarIndicatorContainerStyle","contentContainerStyle","tabBarContentContainerStyle","card","tabBarStyle","onTabPress","preventDefault","event","emit","type","target","canPreventDefault","defaultPrevented","onTabLongPress","renderIndicator","tabBarIndicator","create","textAlign","fontSize","margin"],"sourceRoot":"../../../src","sources":["views/MaterialTopTabBar.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
2
|
import { CommonActions, useLocale, useTheme } from '@react-navigation/native';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { TabView } from 'react-native-tab-view';
|
|
5
5
|
import { TabAnimationContext } from '../utils/TabAnimationContext';
|
|
6
6
|
import { MaterialTopTabBar } from './MaterialTopTabBar';
|
|
7
|
-
export function MaterialTopTabView(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} = _ref;
|
|
7
|
+
export function MaterialTopTabView({
|
|
8
|
+
tabBar = props => /*#__PURE__*/React.createElement(MaterialTopTabBar, props),
|
|
9
|
+
state,
|
|
10
|
+
navigation,
|
|
11
|
+
descriptors,
|
|
12
|
+
sceneContainerStyle,
|
|
13
|
+
...rest
|
|
14
|
+
}) {
|
|
16
15
|
const {
|
|
17
16
|
colors
|
|
18
17
|
} = useTheme();
|
|
@@ -36,31 +35,22 @@ export function MaterialTopTabView(_ref) {
|
|
|
36
35
|
target: state.key
|
|
37
36
|
});
|
|
38
37
|
},
|
|
39
|
-
renderScene:
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
renderScene: ({
|
|
39
|
+
route,
|
|
40
|
+
position
|
|
41
|
+
}) => /*#__PURE__*/React.createElement(TabAnimationContext.Provider, {
|
|
42
|
+
value: {
|
|
42
43
|
position
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
value: {
|
|
46
|
-
position
|
|
47
|
-
}
|
|
48
|
-
}, descriptors[route.key].render());
|
|
49
|
-
},
|
|
44
|
+
}
|
|
45
|
+
}, descriptors[route.key].render()),
|
|
50
46
|
navigationState: state,
|
|
51
47
|
renderTabBar: renderTabBar,
|
|
52
|
-
renderLazyPlaceholder:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
},
|
|
58
|
-
lazy: _ref4 => {
|
|
59
|
-
let {
|
|
60
|
-
route
|
|
61
|
-
} = _ref4;
|
|
62
|
-
return descriptors[route.key].options.lazy === true && !state.preloadedRouteKeys.includes(route.key);
|
|
63
|
-
},
|
|
48
|
+
renderLazyPlaceholder: ({
|
|
49
|
+
route
|
|
50
|
+
}) => descriptors[route.key].options.lazyPlaceholder?.() ?? null,
|
|
51
|
+
lazy: ({
|
|
52
|
+
route
|
|
53
|
+
}) => descriptors[route.key].options.lazy === true && !state.preloadedRouteKeys.includes(route.key),
|
|
64
54
|
lazyPreloadDistance: focusedOptions.lazyPreloadDistance,
|
|
65
55
|
swipeEnabled: focusedOptions.swipeEnabled,
|
|
66
56
|
animationEnabled: focusedOptions.animationEnabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CommonActions","useLocale","useTheme","React","TabView","TabAnimationContext","MaterialTopTabBar","MaterialTopTabView","
|
|
1
|
+
{"version":3,"names":["CommonActions","useLocale","useTheme","React","TabView","TabAnimationContext","MaterialTopTabBar","MaterialTopTabView","tabBar","props","createElement","state","navigation","descriptors","sceneContainerStyle","rest","colors","direction","renderTabBar","focusedOptions","routes","index","key","options","_extends","onIndexChange","route","dispatch","navigate","target","renderScene","position","Provider","value","render","navigationState","renderLazyPlaceholder","lazyPlaceholder","lazy","preloadedRouteKeys","includes","lazyPreloadDistance","swipeEnabled","animationEnabled","onSwipeStart","emit","type","onSwipeEnd","backgroundColor","background"],"sourceRoot":"../../../src","sources":["views/MaterialTopTabView.tsx"],"mappings":";AAAA,SACEA,aAAa,EAIbC,SAAS,EACTC,QAAQ,QACH,0BAA0B;AACjC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAAkCC,OAAO,QAAQ,uBAAuB;AAQxE,SAASC,mBAAmB,QAAQ,8BAA8B;AAClE,SAASC,iBAAiB,QAAQ,qBAAqB;AAQvD,OAAO,SAASC,kBAAkBA,CAAC;EACjCC,MAAM,GAAIC,KAA6B,iBAAKN,KAAA,CAAAO,aAAA,CAACJ,iBAAiB,EAAKG,KAAQ,CAAC;EAC5EE,KAAK;EACLC,UAAU;EACVC,WAAW;EACXC,mBAAmB;EACnB,GAAGC;AACE,CAAC,EAAE;EACR,MAAM;IAAEC;EAAO,CAAC,GAAGd,QAAQ,CAAC,CAAC;EAC7B,MAAM;IAAEe;EAAU,CAAC,GAAGhB,SAAS,CAAC,CAAC;EAEjC,MAAMiB,YAAY,GAAIT,KAAyB,IAAK;IAClD,OAAOD,MAAM,CAAC;MACZ,GAAGC,KAAK;MACRE,KAAK,EAAEA,KAAK;MACZC,UAAU,EAAEA,UAAU;MACtBC,WAAW,EAAEA;IACf,CAAC,CAAC;EACJ,CAAC;EAED,MAAMM,cAAc,GAAGN,WAAW,CAACF,KAAK,CAACS,MAAM,CAACT,KAAK,CAACU,KAAK,CAAC,CAACC,GAAG,CAAC,CAACC,OAAO;EAEzE,oBACEpB,KAAA,CAAAO,aAAA,CAACN,OAAO,EAAAoB,QAAA,KACFT,IAAI;IACRU,aAAa,EAAGJ,KAAK,IAAK;MACxB,MAAMK,KAAK,GAAGf,KAAK,CAACS,MAAM,CAACC,KAAK,CAAC;MAEjCT,UAAU,CAACe,QAAQ,CAAC;QAClB,GAAG3B,aAAa,CAAC4B,QAAQ,CAACF,KAAK,CAAC;QAChCG,MAAM,EAAElB,KAAK,CAACW;MAChB,CAAC,CAAC;IACJ,CAAE;IACFQ,WAAW,EAAEA,CAAC;MAAEJ,KAAK;MAAEK;IAAS,CAAC,kBAC/B5B,KAAA,CAAAO,aAAA,CAACL,mBAAmB,CAAC2B,QAAQ;MAACC,KAAK,EAAE;QAAEF;MAAS;IAAE,GAC/ClB,WAAW,CAACa,KAAK,CAACJ,GAAG,CAAC,CAACY,MAAM,CAAC,CACH,CAC9B;IACFC,eAAe,EAAExB,KAAM;IACvBO,YAAY,EAAEA,YAAa;IAC3BkB,qBAAqB,EAAEA,CAAC;MAAEV;IAAM,CAAC,KAC/Bb,WAAW,CAACa,KAAK,CAACJ,GAAG,CAAC,CAACC,OAAO,CAACc,eAAe,GAAG,CAAC,IAAI,IACvD;IACDC,IAAI,EAAEA,CAAC;MAAEZ;IAAM,CAAC,KACdb,WAAW,CAACa,KAAK,CAACJ,GAAG,CAAC,CAACC,OAAO,CAACe,IAAI,KAAK,IAAI,IAC5C,CAAC3B,KAAK,CAAC4B,kBAAkB,CAACC,QAAQ,CAACd,KAAK,CAACJ,GAAG,CAC7C;IACDmB,mBAAmB,EAAEtB,cAAc,CAACsB,mBAAoB;IACxDC,YAAY,EAAEvB,cAAc,CAACuB,YAAa;IAC1CC,gBAAgB,EAAExB,cAAc,CAACwB,gBAAiB;IAClDC,YAAY,EAAEA,CAAA,KAAMhC,UAAU,CAACiC,IAAI,CAAC;MAAEC,IAAI,EAAE;IAAa,CAAC,CAAE;IAC5DC,UAAU,EAAEA,CAAA,KAAMnC,UAAU,CAACiC,IAAI,CAAC;MAAEC,IAAI,EAAE;IAAW,CAAC,CAAE;IACxDhC,mBAAmB,EAAE,CACnB;MAAEkC,eAAe,EAAEhC,MAAM,CAACiC;IAAW,CAAC,EACtCnC,mBAAmB,CACnB;IACFG,SAAS,EAAEA;EAAU,EACtB,CAAC;AAEN","ignoreList":[]}
|
|
@@ -14,5 +14,5 @@ export { useTabAnimation } from './utils/useTabAnimation';
|
|
|
14
14
|
/**
|
|
15
15
|
* Types
|
|
16
16
|
*/
|
|
17
|
-
export type { MaterialTopTabBarProps, MaterialTopTabNavigationEventMap, MaterialTopTabNavigationOptions, MaterialTopTabNavigationProp, MaterialTopTabScreenProps, } from './types';
|
|
17
|
+
export type { MaterialTopTabBarProps, MaterialTopTabNavigationEventMap, MaterialTopTabNavigationOptions, MaterialTopTabNavigationProp, MaterialTopTabOptionsArgs, MaterialTopTabScreenProps, } from './types';
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAE3F;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,YAAY,EACV,sBAAsB,EACtB,gCAAgC,EAChC,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAE3F;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,YAAY,EACV,sBAAsB,EACtB,gCAAgC,EAChC,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,SAAS,CAAC"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import { type DefaultNavigatorOptions, type ParamListBase, type TabNavigationState, type TabRouterOptions } from '@react-navigation/native';
|
|
1
|
+
import { type DefaultNavigatorOptions, type NavigatorTypeBagBase, type ParamListBase, type StaticConfig, type TabNavigationState, type TabRouterOptions, type TypedNavigator } from '@react-navigation/native';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import type { MaterialTopTabNavigationConfig, MaterialTopTabNavigationEventMap, MaterialTopTabNavigationOptions } from '../types';
|
|
4
|
-
type Props = DefaultNavigatorOptions<ParamListBase, TabNavigationState<ParamListBase>, MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap
|
|
5
|
-
declare function MaterialTopTabNavigator({ id, initialRouteName, backBehavior, children, layout, screenListeners, screenOptions, screenLayout, ...rest }: Props): React.JSX.Element;
|
|
6
|
-
export declare
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
import type { MaterialTopTabNavigationConfig, MaterialTopTabNavigationEventMap, MaterialTopTabNavigationOptions, MaterialTopTabNavigationProp } from '../types';
|
|
4
|
+
type Props = DefaultNavigatorOptions<ParamListBase, string | undefined, TabNavigationState<ParamListBase>, MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap, MaterialTopTabNavigationProp<ParamListBase>> & TabRouterOptions & MaterialTopTabNavigationConfig;
|
|
5
|
+
declare function MaterialTopTabNavigator({ id, initialRouteName, backBehavior, children, layout, screenListeners, screenOptions, screenLayout, UNSTABLE_getStateForRouteNamesChange, ...rest }: Props): React.JSX.Element;
|
|
6
|
+
export declare function createMaterialTopTabNavigator<ParamList extends ParamListBase, NavigatorID extends string | undefined = undefined, TypeBag extends NavigatorTypeBagBase = {
|
|
7
|
+
ParamList: ParamList;
|
|
8
|
+
NavigatorID: NavigatorID;
|
|
9
|
+
State: TabNavigationState<ParamList>;
|
|
10
|
+
ScreenOptions: MaterialTopTabNavigationOptions;
|
|
11
|
+
EventMap: MaterialTopTabNavigationEventMap;
|
|
12
|
+
NavigationList: {
|
|
13
|
+
[RouteName in keyof ParamList]: MaterialTopTabNavigationProp<ParamList, RouteName, NavigatorID>;
|
|
10
14
|
};
|
|
11
|
-
|
|
15
|
+
Navigator: typeof MaterialTopTabNavigator;
|
|
16
|
+
}, Config extends StaticConfig<TypeBag> | undefined = StaticConfig<TypeBag> | undefined>(config?: Config): TypedNavigator<TypeBag, Config>;
|
|
12
17
|
export {};
|
|
13
18
|
//# sourceMappingURL=createMaterialTopTabNavigator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMaterialTopTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigators/createMaterialTopTabNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"createMaterialTopTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigators/createMaterialTopTabNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAC/B,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAGlB,KAAK,KAAK,GAAG,uBAAuB,CAClC,aAAa,EACb,MAAM,GAAG,SAAS,EAClB,kBAAkB,CAAC,aAAa,CAAC,EACjC,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,CAAC,aAAa,CAAC,CAC5C,GACC,gBAAgB,GAChB,8BAA8B,CAAC;AAEjC,iBAAS,uBAAuB,CAAC,EAC/B,EAAE,EACF,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,oCAAoC,EACpC,GAAG,IAAI,EACR,EAAE,KAAK,qBA8BP;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,SAAS,aAAa,EAC/B,WAAW,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAClD,OAAO,SAAS,oBAAoB,GAAG;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACrC,aAAa,EAAE,+BAA+B,CAAC;IAC/C,QAAQ,EAAE,gCAAgC,CAAC;IAC3C,cAAc,EAAE;SACb,SAAS,IAAI,MAAM,SAAS,GAAG,4BAA4B,CAC1D,SAAS,EACT,SAAS,EACT,WAAW,CACZ;KACF,CAAC;IACF,SAAS,EAAE,OAAO,uBAAuB,CAAC;CAC3C,EACD,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,GAC5C,YAAY,CAAC,OAAO,CAAC,GACrB,SAAS,EACb,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAElD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Descriptor, NavigationHelpers, NavigationProp, ParamListBase, Route, RouteProp, TabActionHelpers, TabNavigationState } from '@react-navigation/native';
|
|
1
|
+
import type { Descriptor, NavigationHelpers, NavigationProp, ParamListBase, Route, RouteProp, TabActionHelpers, TabNavigationState, Theme } from '@react-navigation/native';
|
|
2
2
|
import type React from 'react';
|
|
3
3
|
import type { Animated, PressableAndroidRippleConfig, StyleProp, TextStyle, ViewStyle } from 'react-native';
|
|
4
4
|
import type { SceneRendererProps, TabBar, TabViewProps } from 'react-native-tab-view';
|
|
@@ -35,6 +35,9 @@ export type MaterialTopTabScreenProps<ParamList extends ParamListBase, RouteName
|
|
|
35
35
|
navigation: MaterialTopTabNavigationProp<ParamList, RouteName, NavigatorID>;
|
|
36
36
|
route: RouteProp<ParamList, RouteName>;
|
|
37
37
|
};
|
|
38
|
+
export type MaterialTopTabOptionsArgs<ParamList extends ParamListBase, RouteName extends keyof ParamList = keyof ParamList, NavigatorID extends string | undefined = undefined> = MaterialTopTabScreenProps<ParamList, RouteName, NavigatorID> & {
|
|
39
|
+
theme: Theme;
|
|
40
|
+
};
|
|
38
41
|
export type MaterialTopTabNavigationOptions = {
|
|
39
42
|
/**
|
|
40
43
|
* Title text for the screen.
|
|
@@ -70,7 +73,7 @@ export type MaterialTopTabNavigationOptions = {
|
|
|
70
73
|
tabBarIcon?: (props: {
|
|
71
74
|
focused: boolean;
|
|
72
75
|
color: string;
|
|
73
|
-
}) => React.
|
|
76
|
+
}) => React.ReactElement;
|
|
74
77
|
/**
|
|
75
78
|
* Whether the tab icon should be visible. Defaults to `false`.
|
|
76
79
|
*/
|
|
@@ -78,7 +81,7 @@ export type MaterialTopTabNavigationOptions = {
|
|
|
78
81
|
/**
|
|
79
82
|
* Function that returns a React element to use as a badge for the tab.
|
|
80
83
|
*/
|
|
81
|
-
tabBarBadge?: () => React.
|
|
84
|
+
tabBarBadge?: () => React.ReactElement;
|
|
82
85
|
/**
|
|
83
86
|
* Function that returns a React element as the tab bar indicator.
|
|
84
87
|
*/
|
|
@@ -123,10 +126,6 @@ export type MaterialTopTabNavigationOptions = {
|
|
|
123
126
|
* If you set this to `true`, you should also specify a width in `tabBarItemStyle` to improve the performance of initial render.
|
|
124
127
|
*/
|
|
125
128
|
tabBarScrollEnabled?: boolean;
|
|
126
|
-
/**
|
|
127
|
-
* Style object for the tab icon container.
|
|
128
|
-
*/
|
|
129
|
-
tabBarIconStyle?: StyleProp<ViewStyle>;
|
|
130
129
|
/**
|
|
131
130
|
* Style object for the tab label.
|
|
132
131
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialTopTabBar.d.ts","sourceRoot":"","sources":["../../../../src/views/MaterialTopTabBar.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"MaterialTopTabBar.d.ts","sourceRoot":"","sources":["../../../../src/views/MaterialTopTabBar.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AA6BvD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,UAAU,EACV,WAAW,EACX,GAAG,IAAI,EACR,EAAE,sBAAsB,qBA0FxB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-navigation/material-top-tabs",
|
|
3
3
|
"description": "Integration for the animated tab view component from react-native-tab-view",
|
|
4
|
-
"version": "7.0.0-
|
|
4
|
+
"version": "7.0.0-rc.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native-component",
|
|
7
7
|
"react-component",
|
|
@@ -41,26 +41,26 @@
|
|
|
41
41
|
"clean": "del lib"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@react-navigation/elements": "^2.0.0-
|
|
44
|
+
"@react-navigation/elements": "^2.0.0-rc.0",
|
|
45
45
|
"color": "^4.2.3",
|
|
46
|
-
"react-native-tab-view": "^4.0.0-
|
|
46
|
+
"react-native-tab-view": "^4.0.0-rc.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@react-navigation/native": "^7.0.0-
|
|
49
|
+
"@react-navigation/native": "^7.0.0-rc.0",
|
|
50
50
|
"@testing-library/react-native": "^12.4.3",
|
|
51
|
-
"@types/react": "~18.2.
|
|
51
|
+
"@types/react": "~18.2.79",
|
|
52
52
|
"del-cli": "^5.1.0",
|
|
53
53
|
"react": "18.2.0",
|
|
54
|
-
"react-native": "0.
|
|
54
|
+
"react-native": "0.74.2",
|
|
55
55
|
"react-native-builder-bob": "^0.23.2",
|
|
56
|
-
"react-native-pager-view": "6.
|
|
57
|
-
"typescript": "^5.
|
|
56
|
+
"react-native-pager-view": "6.3.0",
|
|
57
|
+
"typescript": "^5.5.2"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
|
-
"@react-navigation/native": "^7.0.0-
|
|
61
|
-
"react": "
|
|
62
|
-
"react-native": "0.
|
|
63
|
-
"react-native-pager-view": "6.
|
|
60
|
+
"@react-navigation/native": "^7.0.0-rc.0",
|
|
61
|
+
"react": ">= 18.2.0",
|
|
62
|
+
"react-native": ">= 0.72.0",
|
|
63
|
+
"react-native-pager-view": ">= 6.0.0"
|
|
64
64
|
},
|
|
65
65
|
"react-native-builder-bob": {
|
|
66
66
|
"source": "src",
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
]
|
|
77
77
|
]
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "2a1d67089eea2a3d87e38a870ccee35a79c55d7d"
|
|
80
80
|
}
|
package/src/index.tsx
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createNavigatorFactory,
|
|
3
3
|
type DefaultNavigatorOptions,
|
|
4
|
+
type NavigatorTypeBagBase,
|
|
4
5
|
type ParamListBase,
|
|
6
|
+
type StaticConfig,
|
|
5
7
|
type TabActionHelpers,
|
|
6
8
|
type TabNavigationState,
|
|
7
9
|
TabRouter,
|
|
8
10
|
type TabRouterOptions,
|
|
11
|
+
type TypedNavigator,
|
|
9
12
|
useNavigationBuilder,
|
|
10
13
|
} from '@react-navigation/native';
|
|
11
14
|
import * as React from 'react';
|
|
@@ -14,14 +17,17 @@ import type {
|
|
|
14
17
|
MaterialTopTabNavigationConfig,
|
|
15
18
|
MaterialTopTabNavigationEventMap,
|
|
16
19
|
MaterialTopTabNavigationOptions,
|
|
20
|
+
MaterialTopTabNavigationProp,
|
|
17
21
|
} from '../types';
|
|
18
22
|
import { MaterialTopTabView } from '../views/MaterialTopTabView';
|
|
19
23
|
|
|
20
24
|
type Props = DefaultNavigatorOptions<
|
|
21
25
|
ParamListBase,
|
|
26
|
+
string | undefined,
|
|
22
27
|
TabNavigationState<ParamListBase>,
|
|
23
28
|
MaterialTopTabNavigationOptions,
|
|
24
|
-
MaterialTopTabNavigationEventMap
|
|
29
|
+
MaterialTopTabNavigationEventMap,
|
|
30
|
+
MaterialTopTabNavigationProp<ParamListBase>
|
|
25
31
|
> &
|
|
26
32
|
TabRouterOptions &
|
|
27
33
|
MaterialTopTabNavigationConfig;
|
|
@@ -35,6 +41,7 @@ function MaterialTopTabNavigator({
|
|
|
35
41
|
screenListeners,
|
|
36
42
|
screenOptions,
|
|
37
43
|
screenLayout,
|
|
44
|
+
UNSTABLE_getStateForRouteNamesChange,
|
|
38
45
|
...rest
|
|
39
46
|
}: Props) {
|
|
40
47
|
const { state, descriptors, navigation, NavigationContent } =
|
|
@@ -53,6 +60,7 @@ function MaterialTopTabNavigator({
|
|
|
53
60
|
screenListeners,
|
|
54
61
|
screenOptions,
|
|
55
62
|
screenLayout,
|
|
63
|
+
UNSTABLE_getStateForRouteNamesChange,
|
|
56
64
|
});
|
|
57
65
|
|
|
58
66
|
return (
|
|
@@ -67,9 +75,27 @@ function MaterialTopTabNavigator({
|
|
|
67
75
|
);
|
|
68
76
|
}
|
|
69
77
|
|
|
70
|
-
export
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
export function createMaterialTopTabNavigator<
|
|
79
|
+
ParamList extends ParamListBase,
|
|
80
|
+
NavigatorID extends string | undefined = undefined,
|
|
81
|
+
TypeBag extends NavigatorTypeBagBase = {
|
|
82
|
+
ParamList: ParamList;
|
|
83
|
+
NavigatorID: NavigatorID;
|
|
84
|
+
State: TabNavigationState<ParamList>;
|
|
85
|
+
ScreenOptions: MaterialTopTabNavigationOptions;
|
|
86
|
+
EventMap: MaterialTopTabNavigationEventMap;
|
|
87
|
+
NavigationList: {
|
|
88
|
+
[RouteName in keyof ParamList]: MaterialTopTabNavigationProp<
|
|
89
|
+
ParamList,
|
|
90
|
+
RouteName,
|
|
91
|
+
NavigatorID
|
|
92
|
+
>;
|
|
93
|
+
};
|
|
94
|
+
Navigator: typeof MaterialTopTabNavigator;
|
|
95
|
+
},
|
|
96
|
+
Config extends StaticConfig<TypeBag> | undefined =
|
|
97
|
+
| StaticConfig<TypeBag>
|
|
98
|
+
| undefined,
|
|
99
|
+
>(config?: Config): TypedNavigator<TypeBag, Config> {
|
|
100
|
+
return createNavigatorFactory(MaterialTopTabNavigator)(config);
|
|
101
|
+
}
|