react-native-tab-view 4.0.9 → 4.0.10

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.
Files changed (34) hide show
  1. package/package.json +4 -2
  2. package/lib/commonjs/Pager.android.js +0 -13
  3. package/lib/commonjs/Pager.android.js.map +0 -1
  4. package/lib/commonjs/Pager.ios.js +0 -13
  5. package/lib/commonjs/Pager.ios.js.map +0 -1
  6. package/lib/commonjs/Pager.js +0 -13
  7. package/lib/commonjs/Pager.js.map +0 -1
  8. package/lib/commonjs/PagerViewAdapter.js +0 -133
  9. package/lib/commonjs/PagerViewAdapter.js.map +0 -1
  10. package/lib/commonjs/PanResponderAdapter.js +0 -207
  11. package/lib/commonjs/PanResponderAdapter.js.map +0 -1
  12. package/lib/commonjs/PlatformPressable.js +0 -65
  13. package/lib/commonjs/PlatformPressable.js.map +0 -1
  14. package/lib/commonjs/SceneMap.js +0 -30
  15. package/lib/commonjs/SceneMap.js.map +0 -1
  16. package/lib/commonjs/SceneView.js +0 -79
  17. package/lib/commonjs/SceneView.js.map +0 -1
  18. package/lib/commonjs/TabBar.js +0 -479
  19. package/lib/commonjs/TabBar.js.map +0 -1
  20. package/lib/commonjs/TabBarIndicator.js +0 -128
  21. package/lib/commonjs/TabBarIndicator.js.map +0 -1
  22. package/lib/commonjs/TabBarItem.js +0 -225
  23. package/lib/commonjs/TabBarItem.js.map +0 -1
  24. package/lib/commonjs/TabBarItemLabel.js +0 -38
  25. package/lib/commonjs/TabBarItemLabel.js.map +0 -1
  26. package/lib/commonjs/TabView.js +0 -146
  27. package/lib/commonjs/TabView.js.map +0 -1
  28. package/lib/commonjs/index.js +0 -41
  29. package/lib/commonjs/index.js.map +0 -1
  30. package/lib/commonjs/package.json +0 -1
  31. package/lib/commonjs/types.js +0 -6
  32. package/lib/commonjs/types.js.map +0 -1
  33. package/lib/commonjs/useAnimatedValue.js +0 -18
  34. package/lib/commonjs/useAnimatedValue.js.map +0 -1
@@ -1,79 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SceneView = SceneView;
7
- var React = _interopRequireWildcard(require("react"));
8
- var _reactNative = require("react-native");
9
- var _jsxRuntime = require("react/jsx-runtime");
10
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
- function SceneView({
13
- children,
14
- navigationState,
15
- lazy,
16
- layout,
17
- index,
18
- lazyPreloadDistance,
19
- addEnterListener,
20
- style
21
- }) {
22
- const [isLoading, setIsLoading] = React.useState(Math.abs(navigationState.index - index) > lazyPreloadDistance);
23
- if (isLoading && Math.abs(navigationState.index - index) <= lazyPreloadDistance) {
24
- // Always render the route when it becomes focused
25
- setIsLoading(false);
26
- }
27
- React.useEffect(() => {
28
- const handleEnter = value => {
29
- // If we're entering the current route, we need to load it
30
- if (value === index) {
31
- setIsLoading(prevState => {
32
- if (prevState) {
33
- return false;
34
- }
35
- return prevState;
36
- });
37
- }
38
- };
39
- let unsubscribe;
40
- let timer;
41
- if (lazy && isLoading) {
42
- // If lazy mode is enabled, listen to when we enter screens
43
- unsubscribe = addEnterListener(handleEnter);
44
- } else if (isLoading) {
45
- // If lazy mode is not enabled, render the scene with a delay if not loaded already
46
- // This improves the initial startup time as the scene is no longer blocking
47
- timer = setTimeout(() => setIsLoading(false), 0);
48
- }
49
- return () => {
50
- unsubscribe?.();
51
- clearTimeout(timer);
52
- };
53
- }, [addEnterListener, index, isLoading, lazy]);
54
- const focused = navigationState.index === index;
55
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
56
- accessibilityElementsHidden: !focused,
57
- importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',
58
- style: [styles.route,
59
- // If we don't have the layout yet, make the focused screen fill the container
60
- // This avoids delay before we are able to render pages side by side
61
- layout.width ? {
62
- width: layout.width
63
- } : focused ? _reactNative.StyleSheet.absoluteFill : null, style],
64
- children:
65
- // Only render the route only if it's either focused or layout is available
66
- // When layout is not available, we must not render unfocused routes
67
- // so that the focused route can fill the screen
68
- focused || layout.width ? children({
69
- loading: isLoading
70
- }) : null
71
- });
72
- }
73
- const styles = _reactNative.StyleSheet.create({
74
- route: {
75
- flex: 1,
76
- overflow: 'hidden'
77
- }
78
- });
79
- //# sourceMappingURL=SceneView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SceneView","children","navigationState","lazy","layout","index","lazyPreloadDistance","addEnterListener","style","isLoading","setIsLoading","useState","Math","abs","useEffect","handleEnter","value","prevState","unsubscribe","timer","setTimeout","clearTimeout","focused","jsx","View","accessibilityElementsHidden","importantForAccessibility","styles","route","width","StyleSheet","absoluteFill","loading","create","flex","overflow"],"sourceRoot":"../../src","sources":["SceneView.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,479 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TabBar = TabBar;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var React = _react;
9
- var _reactNative = require("react-native");
10
- var _useLatestCallback = _interopRequireDefault(require("use-latest-callback"));
11
- var _TabBarIndicator = require("./TabBarIndicator.js");
12
- var _TabBarItem = require("./TabBarItem.js");
13
- var _useAnimatedValue = require("./useAnimatedValue.js");
14
- var _jsxRuntime = require("react/jsx-runtime");
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
- const useNativeDriver = _reactNative.Platform.OS !== 'web';
19
- const Separator = ({
20
- width
21
- }) => {
22
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
23
- style: {
24
- width
25
- }
26
- });
27
- };
28
- const getFlattenedTabWidth = style => {
29
- const tabStyle = _reactNative.StyleSheet.flatten(style);
30
- return tabStyle?.width;
31
- };
32
- const getFlattenedPaddingStart = style => {
33
- const flattenStyle = _reactNative.StyleSheet.flatten(style);
34
- return flattenStyle ? flattenStyle.paddingLeft || flattenStyle.paddingStart || flattenStyle.paddingHorizontal || 0 : 0;
35
- };
36
- const getFlattenedPaddingEnd = style => {
37
- const flattenStyle = _reactNative.StyleSheet.flatten(style);
38
- return flattenStyle ? flattenStyle.paddingRight || flattenStyle.paddingEnd || flattenStyle.paddingHorizontal || 0 : 0;
39
- };
40
- const convertPaddingPercentToSize = (value, layout) => {
41
- switch (typeof value) {
42
- case 'number':
43
- return value;
44
- case 'string':
45
- if (value.endsWith('%')) {
46
- const width = parseFloat(value);
47
- if (Number.isFinite(width)) {
48
- return layout.width * (width / 100);
49
- }
50
- }
51
- }
52
- return 0;
53
- };
54
- const getComputedTabWidth = (index, layout, routes, scrollEnabled, tabWidths, flattenedWidth, flattenedPaddingStart, flattenedPaddingEnd, gap) => {
55
- if (flattenedWidth === 'auto') {
56
- return tabWidths[routes[index].key] || 0;
57
- }
58
- switch (typeof flattenedWidth) {
59
- case 'number':
60
- return flattenedWidth;
61
- case 'string':
62
- if (flattenedWidth.endsWith('%')) {
63
- const width = parseFloat(flattenedWidth);
64
- if (Number.isFinite(width)) {
65
- return layout.width * (width / 100);
66
- }
67
- }
68
- }
69
- if (scrollEnabled) {
70
- return layout.width / 5 * 2;
71
- }
72
- const gapTotalWidth = (gap ?? 0) * (routes.length - 1);
73
- const paddingTotalWidth = convertPaddingPercentToSize(flattenedPaddingStart, layout) + convertPaddingPercentToSize(flattenedPaddingEnd, layout);
74
- return (layout.width - gapTotalWidth - paddingTotalWidth) / routes.length;
75
- };
76
- const getMaxScrollDistance = (tabBarWidth, layoutWidth) => tabBarWidth - layoutWidth;
77
- const getTranslateX = (scrollAmount, maxScrollDistance, direction) => _reactNative.Animated.multiply(_reactNative.Platform.OS === 'android' && direction === 'rtl' ? _reactNative.Animated.add(maxScrollDistance, _reactNative.Animated.multiply(scrollAmount, -1)) : scrollAmount, direction === 'rtl' ? 1 : -1);
78
- const getTabBarWidth = ({
79
- navigationState,
80
- layout,
81
- gap,
82
- scrollEnabled,
83
- flattenedTabWidth,
84
- flattenedPaddingStart,
85
- flattenedPaddingEnd,
86
- tabWidths
87
- }) => {
88
- const {
89
- routes
90
- } = navigationState;
91
- const paddingsWidth = Math.max(0, convertPaddingPercentToSize(flattenedPaddingStart, layout) + convertPaddingPercentToSize(flattenedPaddingEnd, layout));
92
- return routes.reduce((acc, _, i) => acc + (i > 0 ? gap ?? 0 : 0) + getComputedTabWidth(i, layout, routes, scrollEnabled, tabWidths, flattenedTabWidth, flattenedPaddingStart, flattenedPaddingEnd, gap), paddingsWidth);
93
- };
94
- const normalizeScrollValue = ({
95
- layout,
96
- navigationState,
97
- gap,
98
- scrollEnabled,
99
- tabWidths,
100
- value,
101
- flattenedTabWidth,
102
- flattenedPaddingStart,
103
- flattenedPaddingEnd,
104
- direction
105
- }) => {
106
- const tabBarWidth = getTabBarWidth({
107
- layout,
108
- navigationState,
109
- tabWidths,
110
- gap,
111
- scrollEnabled,
112
- flattenedTabWidth,
113
- flattenedPaddingStart,
114
- flattenedPaddingEnd
115
- });
116
- const maxDistance = getMaxScrollDistance(tabBarWidth, layout.width);
117
- const scrollValue = Math.max(Math.min(value, maxDistance), 0);
118
- if (_reactNative.Platform.OS === 'android' && direction === 'rtl') {
119
- // On Android, scroll value is not applied in reverse in RTL
120
- // so we need to manually adjust it to apply correct value
121
- return maxDistance - scrollValue;
122
- }
123
- return scrollValue;
124
- };
125
- const getScrollAmount = ({
126
- layout,
127
- navigationState,
128
- gap,
129
- scrollEnabled,
130
- flattenedTabWidth,
131
- tabWidths,
132
- flattenedPaddingStart,
133
- flattenedPaddingEnd,
134
- direction
135
- }) => {
136
- const paddingInitial = direction === 'rtl' ? convertPaddingPercentToSize(flattenedPaddingEnd, layout) : convertPaddingPercentToSize(flattenedPaddingStart, layout);
137
- const centerDistance = Array.from({
138
- length: navigationState.index + 1
139
- }).reduce((total, _, i) => {
140
- const tabWidth = getComputedTabWidth(i, layout, navigationState.routes, scrollEnabled, tabWidths, flattenedTabWidth, flattenedPaddingStart, flattenedPaddingEnd, gap);
141
-
142
- // To get the current index centered we adjust scroll amount by width of indexes
143
- // 0 through (i - 1) and add half the width of current index i
144
- return total + (i > 0 ? gap ?? 0 : 0) + (navigationState.index === i ? tabWidth / 2 : tabWidth);
145
- }, paddingInitial);
146
- const scrollAmount = centerDistance - layout.width / 2;
147
- return normalizeScrollValue({
148
- layout,
149
- navigationState,
150
- tabWidths,
151
- value: scrollAmount,
152
- gap,
153
- scrollEnabled,
154
- flattenedTabWidth,
155
- flattenedPaddingStart,
156
- flattenedPaddingEnd,
157
- direction
158
- });
159
- };
160
- const getLabelTextDefault = ({
161
- route
162
- }) => route.title;
163
- const getAccessibleDefault = ({
164
- route
165
- }) => typeof route.accessible !== 'undefined' ? route.accessible : true;
166
- const getAccessibilityLabelDefault = ({
167
- route
168
- }) => typeof route.accessibilityLabel === 'string' ? route.accessibilityLabel : typeof route.title === 'string' ? route.title : undefined;
169
- const renderIndicatorDefault = props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TabBarIndicator.TabBarIndicator, {
170
- ...props
171
- });
172
- const getTestIdDefault = ({
173
- route
174
- }) => route.testID;
175
-
176
- // How many items measurements should we update per batch.
177
- // Defaults to 10, since that's whats FlatList is using in initialNumToRender.
178
- const MEASURE_PER_BATCH = 10;
179
- function TabBar({
180
- renderIndicator = renderIndicatorDefault,
181
- gap = 0,
182
- scrollEnabled,
183
- jumpTo,
184
- navigationState,
185
- position,
186
- activeColor,
187
- bounces,
188
- contentContainerStyle,
189
- inactiveColor,
190
- indicatorContainerStyle,
191
- indicatorStyle,
192
- onTabLongPress,
193
- onTabPress,
194
- pressColor,
195
- pressOpacity,
196
- direction = _reactNative.I18nManager.getConstants().isRTL ? 'rtl' : 'ltr',
197
- renderTabBarItem,
198
- style,
199
- tabStyle,
200
- layout: propLayout,
201
- testID,
202
- android_ripple,
203
- options
204
- }) {
205
- const [layout, setLayout] = React.useState(propLayout ?? {
206
- width: 0,
207
- height: 0
208
- });
209
- const [tabWidths, setTabWidths] = React.useState({});
210
- const flatListRef = React.useRef(null);
211
- const isFirst = React.useRef(true);
212
- const scrollAmount = (0, _useAnimatedValue.useAnimatedValue)(0);
213
- const measuredTabWidths = React.useRef({});
214
- const {
215
- routes
216
- } = navigationState;
217
- const flattenedTabWidth = getFlattenedTabWidth(tabStyle);
218
- const isWidthDynamic = flattenedTabWidth === 'auto';
219
- const flattenedPaddingEnd = getFlattenedPaddingEnd(contentContainerStyle);
220
- const flattenedPaddingStart = getFlattenedPaddingStart(contentContainerStyle);
221
- const scrollOffset = getScrollAmount({
222
- layout,
223
- navigationState,
224
- tabWidths,
225
- gap,
226
- scrollEnabled,
227
- flattenedTabWidth,
228
- flattenedPaddingStart,
229
- flattenedPaddingEnd,
230
- direction
231
- });
232
- const hasMeasuredTabWidths = Boolean(layout.width) && routes.slice(0, navigationState.index).every(r => typeof tabWidths[r.key] === 'number');
233
- React.useEffect(() => {
234
- if (isFirst.current) {
235
- isFirst.current = false;
236
- return;
237
- }
238
- if (isWidthDynamic && !hasMeasuredTabWidths) {
239
- return;
240
- }
241
- if (scrollEnabled) {
242
- flatListRef.current?.scrollToOffset({
243
- offset: scrollOffset,
244
- animated: true
245
- });
246
- }
247
- }, [hasMeasuredTabWidths, isWidthDynamic, scrollEnabled, scrollOffset]);
248
- const handleLayout = e => {
249
- const {
250
- height,
251
- width
252
- } = e.nativeEvent.layout;
253
- setLayout(layout => layout.width === width && layout.height === height ? layout : {
254
- width,
255
- height
256
- });
257
- };
258
- const tabBarWidth = getTabBarWidth({
259
- layout,
260
- navigationState,
261
- tabWidths,
262
- gap,
263
- scrollEnabled,
264
- flattenedTabWidth,
265
- flattenedPaddingStart,
266
- flattenedPaddingEnd
267
- });
268
- const separatorsWidth = Math.max(0, routes.length - 1) * gap;
269
- const paddingsWidth = Math.max(0, convertPaddingPercentToSize(flattenedPaddingStart, layout) + convertPaddingPercentToSize(flattenedPaddingEnd, layout));
270
- const translateX = React.useMemo(() => getTranslateX(scrollAmount, getMaxScrollDistance(tabBarWidth, layout.width), direction), [direction, layout.width, scrollAmount, tabBarWidth]);
271
- const renderItem = React.useCallback(({
272
- item: route,
273
- index
274
- }) => {
275
- const {
276
- testID = getTestIdDefault({
277
- route
278
- }),
279
- labelText = getLabelTextDefault({
280
- route
281
- }),
282
- accessible = getAccessibleDefault({
283
- route
284
- }),
285
- accessibilityLabel = getAccessibilityLabelDefault({
286
- route
287
- }),
288
- ...rest
289
- } = options?.[route.key] ?? {};
290
- const onLayout = isWidthDynamic ? e => {
291
- measuredTabWidths.current[route.key] = e.nativeEvent.layout.width;
292
-
293
- // When we have measured widths for all of the tabs, we should updates the state
294
- // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
295
- // If we have more than 10 routes divide updating tabWidths into multiple batches. Here we update only first batch of 10 items.
296
- if (routes.length > MEASURE_PER_BATCH && index === MEASURE_PER_BATCH && routes.slice(0, MEASURE_PER_BATCH).every(r => typeof measuredTabWidths.current[r.key] === 'number')) {
297
- setTabWidths({
298
- ...measuredTabWidths.current
299
- });
300
- } else if (routes.every(r => typeof measuredTabWidths.current[r.key] === 'number')) {
301
- // When we have measured widths for all of the tabs, we should updates the state
302
- // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
303
- setTabWidths({
304
- ...measuredTabWidths.current
305
- });
306
- }
307
- } : undefined;
308
- const onPress = () => {
309
- const event = {
310
- route,
311
- defaultPrevented: false,
312
- preventDefault: () => {
313
- event.defaultPrevented = true;
314
- }
315
- };
316
- onTabPress?.(event);
317
- if (event.defaultPrevented) {
318
- return;
319
- }
320
- jumpTo(route.key);
321
- };
322
- const onLongPress = () => onTabLongPress?.({
323
- route
324
- });
325
-
326
- // Calculate the default width for tab for FlatList to work
327
- const defaultTabWidth = !isWidthDynamic ? getComputedTabWidth(index, layout, routes, scrollEnabled, tabWidths, getFlattenedTabWidth(tabStyle), getFlattenedPaddingEnd(contentContainerStyle), getFlattenedPaddingStart(contentContainerStyle), gap) : undefined;
328
- const props = {
329
- ...rest,
330
- key: route.key,
331
- position,
332
- route,
333
- navigationState,
334
- testID,
335
- labelText,
336
- accessible,
337
- accessibilityLabel,
338
- activeColor,
339
- inactiveColor,
340
- pressColor,
341
- pressOpacity,
342
- onLayout,
343
- onPress,
344
- onLongPress,
345
- style: tabStyle,
346
- defaultTabWidth,
347
- android_ripple
348
- };
349
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
350
- children: [gap > 0 && index > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Separator, {
351
- width: gap
352
- }) : null, renderTabBarItem ? renderTabBarItem(props) : /*#__PURE__*/(0, _react.createElement)(_TabBarItem.TabBarItem, {
353
- ...props,
354
- key: props.key
355
- })]
356
- });
357
- }, [position, navigationState, options, activeColor, inactiveColor, pressColor, pressOpacity, isWidthDynamic, tabStyle, layout, routes, scrollEnabled, tabWidths, contentContainerStyle, gap, android_ripple, renderTabBarItem, onTabPress, jumpTo, onTabLongPress]);
358
- const keyExtractor = React.useCallback(item => item.key, []);
359
- const contentContainerStyleMemoized = React.useMemo(() => [styles.tabContent, scrollEnabled ? {
360
- width: tabBarWidth
361
- } : null, contentContainerStyle], [contentContainerStyle, scrollEnabled, tabBarWidth]);
362
- const handleScroll = React.useMemo(() => _reactNative.Animated.event([{
363
- nativeEvent: {
364
- contentOffset: {
365
- x: scrollAmount
366
- }
367
- }
368
- }], {
369
- useNativeDriver
370
- }), [scrollAmount]);
371
- const handleViewableItemsChanged = (0, _useLatestCallback.default)(({
372
- changed
373
- }) => {
374
- if (routes.length <= MEASURE_PER_BATCH) {
375
- return;
376
- }
377
- // Get next vievable item
378
- const item = changed[changed.length - 1];
379
- const index = item?.index || 0;
380
- if (item.isViewable && (index % 10 === 0 || index === navigationState.index || index === routes.length - 1)) {
381
- setTabWidths({
382
- ...measuredTabWidths.current
383
- });
384
- }
385
- });
386
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
387
- onLayout: handleLayout,
388
- style: [styles.tabBar, style],
389
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
390
- pointerEvents: "none",
391
- style: [styles.indicatorContainer, scrollEnabled ? {
392
- transform: [{
393
- translateX
394
- }]
395
- } : null, scrollEnabled ? {
396
- width: tabBarWidth
397
- } : null, indicatorContainerStyle],
398
- children: renderIndicator({
399
- position,
400
- layout,
401
- navigationState,
402
- jumpTo,
403
- direction,
404
- width: isWidthDynamic ? 'auto' : Math.max(0, (tabBarWidth - separatorsWidth - paddingsWidth) / routes.length),
405
- style: [indicatorStyle, {
406
- start: flattenedPaddingStart,
407
- end: flattenedPaddingEnd
408
- }],
409
- getTabWidth: i => getComputedTabWidth(i, layout, routes, scrollEnabled, tabWidths, flattenedTabWidth, flattenedPaddingEnd, flattenedPaddingStart, gap),
410
- gap
411
- })
412
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
413
- style: styles.scroll,
414
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.FlatList, {
415
- data: routes,
416
- keyExtractor: keyExtractor,
417
- horizontal: true,
418
- accessibilityRole: "tablist",
419
- keyboardShouldPersistTaps: "handled",
420
- scrollEnabled: scrollEnabled,
421
- bounces: bounces,
422
- initialNumToRender: MEASURE_PER_BATCH,
423
- onViewableItemsChanged: handleViewableItemsChanged,
424
- alwaysBounceHorizontal: false,
425
- scrollsToTop: false,
426
- showsHorizontalScrollIndicator: false,
427
- showsVerticalScrollIndicator: false,
428
- automaticallyAdjustContentInsets: false,
429
- overScrollMode: "never",
430
- contentContainerStyle: contentContainerStyleMemoized,
431
- scrollEventThrottle: 16,
432
- renderItem: renderItem,
433
- onScroll: handleScroll,
434
- ref: flatListRef,
435
- testID: testID
436
- })
437
- })]
438
- });
439
- }
440
- const styles = _reactNative.StyleSheet.create({
441
- scroll: {
442
- overflow: _reactNative.Platform.select({
443
- default: 'scroll',
444
- web: undefined
445
- })
446
- },
447
- tabBar: {
448
- zIndex: 1,
449
- backgroundColor: '#2196f3',
450
- elevation: 4,
451
- ..._reactNative.Platform.select({
452
- default: {
453
- shadowColor: 'black',
454
- shadowOpacity: 0.1,
455
- shadowRadius: _reactNative.StyleSheet.hairlineWidth,
456
- shadowOffset: {
457
- height: _reactNative.StyleSheet.hairlineWidth,
458
- width: 0
459
- }
460
- },
461
- web: {
462
- boxShadow: '0 1px 1px rgba(0, 0, 0, 0.1)'
463
- }
464
- })
465
- },
466
- tabContent: {
467
- flexGrow: 1,
468
- flexDirection: 'row',
469
- flexWrap: 'nowrap'
470
- },
471
- indicatorContainer: {
472
- position: 'absolute',
473
- top: 0,
474
- start: 0,
475
- end: 0,
476
- bottom: 0
477
- }
478
- });
479
- //# sourceMappingURL=TabBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNative","_useLatestCallback","_interopRequireDefault","_TabBarIndicator","_TabBarItem","_useAnimatedValue","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useNativeDriver","Platform","OS","Separator","width","jsx","View","style","getFlattenedTabWidth","tabStyle","StyleSheet","flatten","getFlattenedPaddingStart","flattenStyle","paddingLeft","paddingStart","paddingHorizontal","getFlattenedPaddingEnd","paddingRight","paddingEnd","convertPaddingPercentToSize","value","layout","endsWith","parseFloat","Number","isFinite","getComputedTabWidth","index","routes","scrollEnabled","tabWidths","flattenedWidth","flattenedPaddingStart","flattenedPaddingEnd","gap","key","gapTotalWidth","length","paddingTotalWidth","getMaxScrollDistance","tabBarWidth","layoutWidth","getTranslateX","scrollAmount","maxScrollDistance","direction","Animated","multiply","add","getTabBarWidth","navigationState","flattenedTabWidth","paddingsWidth","Math","max","reduce","acc","_","normalizeScrollValue","maxDistance","scrollValue","min","getScrollAmount","paddingInitial","centerDistance","Array","from","total","tabWidth","getLabelTextDefault","route","title","getAccessibleDefault","accessible","getAccessibilityLabelDefault","accessibilityLabel","undefined","renderIndicatorDefault","props","TabBarIndicator","getTestIdDefault","testID","MEASURE_PER_BATCH","TabBar","renderIndicator","jumpTo","position","activeColor","bounces","contentContainerStyle","inactiveColor","indicatorContainerStyle","indicatorStyle","onTabLongPress","onTabPress","pressColor","pressOpacity","I18nManager","getConstants","isRTL","renderTabBarItem","propLayout","android_ripple","options","setLayout","useState","height","setTabWidths","flatListRef","useRef","isFirst","useAnimatedValue","measuredTabWidths","isWidthDynamic","scrollOffset","hasMeasuredTabWidths","Boolean","slice","every","useEffect","current","scrollToOffset","offset","animated","handleLayout","nativeEvent","separatorsWidth","translateX","useMemo","renderItem","useCallback","item","labelText","rest","onLayout","onPress","event","defaultPrevented","preventDefault","onLongPress","defaultTabWidth","jsxs","Fragment","children","createElement","TabBarItem","keyExtractor","contentContainerStyleMemoized","styles","tabContent","handleScroll","contentOffset","x","handleViewableItemsChanged","useLatestCallback","changed","isViewable","tabBar","pointerEvents","indicatorContainer","transform","start","end","getTabWidth","scroll","FlatList","data","horizontal","accessibilityRole","keyboardShouldPersistTaps","initialNumToRender","onViewableItemsChanged","alwaysBounceHorizontal","scrollsToTop","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","automaticallyAdjustContentInsets","overScrollMode","scrollEventThrottle","onScroll","ref","create","overflow","select","web","zIndex","backgroundColor","elevation","shadowColor","shadowOpacity","shadowRadius","hairlineWidth","shadowOffset","boxShadow","flexGrow","flexDirection","flexWrap","top","bottom"],"sourceRoot":"../../src","sources":["TabBar.tsx"],"mappings":"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","ignoreList":[]}