react-native-tab-view 4.2.1 → 4.3.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.
@@ -2,7 +2,6 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { Animated, I18nManager, Platform, StyleSheet, View } from 'react-native';
5
- import useLatestCallback from 'use-latest-callback';
6
5
  import { TabBarIndicator } from "./TabBarIndicator.js";
7
6
  import { TabBarItem } from "./TabBarItem.js";
8
7
  import { useAnimatedValue } from "./useAnimatedValue.js";
@@ -202,7 +201,6 @@ export function TabBar({
202
201
  const flatListRef = React.useRef(null);
203
202
  const isFirst = React.useRef(true);
204
203
  const scrollAmount = useAnimatedValue(0);
205
- const measuredTabWidths = React.useRef({});
206
204
  const {
207
205
  routes
208
206
  } = navigationState;
@@ -260,6 +258,8 @@ export function TabBar({
260
258
  const separatorsWidth = Math.max(0, routes.length - 1) * gap;
261
259
  const paddingsWidth = Math.max(0, convertPaddingPercentToSize(flattenedPaddingStart, layout) + convertPaddingPercentToSize(flattenedPaddingEnd, layout));
262
260
  const translateX = React.useMemo(() => getTranslateX(scrollAmount, getMaxScrollDistance(tabBarWidth, layout.width), direction), [direction, layout.width, scrollAmount, tabBarWidth]);
261
+ const measuredTabWidths = React.useRef({});
262
+ const animationFrameHandle = React.useRef(null);
263
263
  const renderItem = React.useCallback(({
264
264
  item: route,
265
265
  index
@@ -281,21 +281,14 @@ export function TabBar({
281
281
  } = options?.[route.key] ?? {};
282
282
  const onLayout = isWidthDynamic ? e => {
283
283
  measuredTabWidths.current[route.key] = e.nativeEvent.layout.width;
284
-
285
- // When we have measured widths for all of the tabs, we should updates the state
286
- // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
287
- // If we have more than 10 routes divide updating tabWidths into multiple batches. Here we update only first batch of 10 items.
288
- if (routes.length > MEASURE_PER_BATCH && index === MEASURE_PER_BATCH && routes.slice(0, MEASURE_PER_BATCH).every(r => typeof measuredTabWidths.current[r.key] === 'number')) {
289
- setTabWidths({
290
- ...measuredTabWidths.current
291
- });
292
- } else if (routes.every(r => typeof measuredTabWidths.current[r.key] === 'number')) {
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
284
+ if (animationFrameHandle.current != null) {
285
+ cancelAnimationFrame(animationFrameHandle.current);
286
+ }
287
+ animationFrameHandle.current = requestAnimationFrame(() => {
295
288
  setTabWidths({
296
289
  ...measuredTabWidths.current
297
290
  });
298
- }
291
+ });
299
292
  } : undefined;
300
293
  const onPress = () => {
301
294
  const event = {
@@ -361,21 +354,6 @@ export function TabBar({
361
354
  }], {
362
355
  useNativeDriver
363
356
  }), [scrollAmount]);
364
- const handleViewableItemsChanged = useLatestCallback(({
365
- changed
366
- }) => {
367
- if (routes.length <= MEASURE_PER_BATCH) {
368
- return;
369
- }
370
- // Get next vievable item
371
- const item = changed[changed.length - 1];
372
- const index = item?.index || 0;
373
- if (item.isViewable && (index % 10 === 0 || index === navigationState.index || index === routes.length - 1)) {
374
- setTabWidths({
375
- ...measuredTabWidths.current
376
- });
377
- }
378
- });
379
357
  return /*#__PURE__*/_jsxs(Animated.View, {
380
358
  onLayout: handleLayout,
381
359
  style: [styles.tabBar, style],
@@ -413,7 +391,6 @@ export function TabBar({
413
391
  scrollEnabled: scrollEnabled,
414
392
  bounces: bounces,
415
393
  initialNumToRender: MEASURE_PER_BATCH,
416
- onViewableItemsChanged: handleViewableItemsChanged,
417
394
  alwaysBounceHorizontal: false,
418
395
  scrollsToTop: false,
419
396
  showsHorizontalScrollIndicator: false,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","I18nManager","Platform","StyleSheet","View","useLatestCallback","TabBarIndicator","TabBarItem","useAnimatedValue","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useNativeDriver","OS","Separator","width","style","getFlattenedTabWidth","tabStyle","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","multiply","add","getTabBarWidth","navigationState","flattenedTabWidth","paddingsWidth","Math","max","reduce","acc","_","i","normalizeScrollValue","maxDistance","scrollValue","min","getScrollAmount","paddingInitial","centerDistance","Array","from","total","tabWidth","getLabelTextDefault","route","title","getAccessibleDefault","accessible","getAccessibilityLabelDefault","accessibilityLabel","undefined","renderIndicatorDefault","props","getTestIdDefault","testID","MEASURE_PER_BATCH","TabBar","renderIndicator","jumpTo","position","activeColor","bounces","contentContainerStyle","inactiveColor","indicatorContainerStyle","indicatorStyle","onTabLongPress","onTabPress","pressColor","pressOpacity","getConstants","isRTL","renderTabBarItem","propLayout","android_ripple","options","setLayout","useState","height","setTabWidths","flatListRef","useRef","isFirst","measuredTabWidths","isWidthDynamic","scrollOffset","hasMeasuredTabWidths","Boolean","slice","every","r","useEffect","current","scrollToOffset","offset","animated","handleLayout","e","nativeEvent","separatorsWidth","translateX","useMemo","renderItem","useCallback","item","labelText","rest","onLayout","onPress","event","defaultPrevented","preventDefault","onLongPress","defaultTabWidth","children","keyExtractor","contentContainerStyleMemoized","styles","tabContent","handleScroll","contentOffset","x","handleViewableItemsChanged","changed","isViewable","tabBar","pointerEvents","indicatorContainer","transform","start","end","getTabWidth","scroll","FlatList","data","horizontal","role","keyboardShouldPersistTaps","initialNumToRender","onViewableItemsChanged","alwaysBounceHorizontal","scrollsToTop","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","automaticallyAdjustContentInsets","overScrollMode","scrollEventThrottle","onScroll","ref","create","overflow","select","default","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":[]}
1
+ {"version":3,"names":["React","Animated","I18nManager","Platform","StyleSheet","View","TabBarIndicator","TabBarItem","useAnimatedValue","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useNativeDriver","OS","Separator","width","style","getFlattenedTabWidth","tabStyle","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","multiply","add","getTabBarWidth","navigationState","flattenedTabWidth","paddingsWidth","Math","max","reduce","acc","_","i","normalizeScrollValue","maxDistance","scrollValue","min","getScrollAmount","paddingInitial","centerDistance","Array","from","total","tabWidth","getLabelTextDefault","route","title","getAccessibleDefault","accessible","getAccessibilityLabelDefault","accessibilityLabel","undefined","renderIndicatorDefault","props","getTestIdDefault","testID","MEASURE_PER_BATCH","TabBar","renderIndicator","jumpTo","position","activeColor","bounces","contentContainerStyle","inactiveColor","indicatorContainerStyle","indicatorStyle","onTabLongPress","onTabPress","pressColor","pressOpacity","getConstants","isRTL","renderTabBarItem","propLayout","android_ripple","options","setLayout","useState","height","setTabWidths","flatListRef","useRef","isFirst","isWidthDynamic","scrollOffset","hasMeasuredTabWidths","Boolean","slice","every","r","useEffect","current","scrollToOffset","offset","animated","handleLayout","e","nativeEvent","separatorsWidth","translateX","useMemo","measuredTabWidths","animationFrameHandle","renderItem","useCallback","item","labelText","rest","onLayout","cancelAnimationFrame","requestAnimationFrame","onPress","event","defaultPrevented","preventDefault","onLongPress","defaultTabWidth","children","keyExtractor","contentContainerStyleMemoized","styles","tabContent","handleScroll","contentOffset","x","tabBar","pointerEvents","indicatorContainer","transform","start","end","getTabWidth","scroll","FlatList","data","horizontal","role","keyboardShouldPersistTaps","initialNumToRender","alwaysBounceHorizontal","scrollsToTop","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","automaticallyAdjustContentInsets","overScrollMode","scrollEventThrottle","onScroll","ref","create","overflow","select","default","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":[]}
@@ -5,23 +5,48 @@ import { Animated, Easing, Platform, StyleSheet } from 'react-native';
5
5
  import { useAnimatedValue } from "./useAnimatedValue.js";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  const useNativeDriver = Platform.OS !== 'web';
8
- const getTranslateX = (position, routes, getTabWidth, direction, gap, width) => {
8
+ const calculateSize = (value, referenceWidth) => {
9
+ if (typeof value === 'number') {
10
+ return value;
11
+ }
12
+ if (typeof value === 'string' && value.endsWith('%')) {
13
+ const parsed = parseFloat(value);
14
+ if (Number.isFinite(parsed)) {
15
+ return referenceWidth * (parsed / 100);
16
+ }
17
+ }
18
+ return undefined;
19
+ };
20
+ const getIndicatorWidthWithMargins = (width, style, direction) => {
21
+ const marginHorizontal = style?.marginHorizontal ?? style?.margin;
22
+ const leftMargin = (direction === 'ltr' ? style?.marginStart : style?.marginEnd) ?? style?.marginLeft ?? marginHorizontal;
23
+ const rightMargin = (direction === 'rtl' ? style?.marginStart : style?.marginEnd) ?? style?.marginRight ?? marginHorizontal;
24
+ return Math.max(0, width - (calculateSize(leftMargin, width) ?? 0) - (calculateSize(rightMargin, width) ?? 0));
25
+ };
26
+ const getIndicatorWidth = (tabWidth, width, style, direction) => {
27
+ const customWidth = calculateSize(style?.width, tabWidth);
28
+ if (customWidth !== undefined) {
29
+ return customWidth;
30
+ }
31
+ if (typeof width === 'number') {
32
+ return getIndicatorWidthWithMargins(width, style, direction);
33
+ }
34
+ return width;
35
+ };
36
+ const getTranslateX = (position, routes, getTabWidth, direction, gap, getWidth) => {
9
37
  const inputRange = routes.map((_, i) => i);
10
-
11
- // every index contains widths at all previous indices
12
- const outputRange = routes.reduce((acc, _, i) => {
13
- if (typeof width === 'number') {
14
- if (i === 0) return [getTabWidth(i) / 2 - width / 2];
15
- let sumTabWidth = 0;
16
- for (let j = 0; j < i; j++) {
17
- sumTabWidth += getTabWidth(j);
18
- }
19
- return [...acc, sumTabWidth + getTabWidth(i) / 2 + (gap ? gap * i : 0) - width / 2];
20
- } else {
21
- if (i === 0) return [0];
22
- return [...acc, acc[i - 1] + getTabWidth(i - 1) + (gap ?? 0)];
38
+ const outputRange = routes.map((_, i) => {
39
+ let sumTabWidth = 0;
40
+ for (let j = 0; j < i; j++) {
41
+ sumTabWidth += getTabWidth(j);
42
+ }
43
+ const indicatorWidth = getWidth?.(i);
44
+ const tabOffset = sumTabWidth + (gap ? gap * i : 0);
45
+ if (indicatorWidth === undefined) {
46
+ return tabOffset;
23
47
  }
24
- }, []);
48
+ return tabOffset + getTabWidth(i) / 2 - indicatorWidth / 2;
49
+ });
25
50
  const translateX = position.interpolate({
26
51
  inputRange,
27
52
  outputRange,
@@ -42,20 +67,41 @@ export function TabBarIndicator({
42
67
  }) {
43
68
  const isIndicatorShown = React.useRef(false);
44
69
  const isWidthDynamic = width === 'auto';
70
+ const flattenedStyle = StyleSheet.flatten(style);
71
+ const hasCustomIndicatorWidth = typeof flattenedStyle?.width === 'number' || typeof flattenedStyle?.width === 'string' && flattenedStyle?.width.endsWith('%');
72
+ const constantIndicatorWidth = typeof flattenedStyle?.width === 'number' ? flattenedStyle.width : undefined;
73
+ const isCentered = hasCustomIndicatorWidth && (flattenedStyle?.margin === 'auto' || flattenedStyle?.marginHorizontal === 'auto');
74
+
75
+ // If indicator has a custom width, we need to adjust calculations to account for it
76
+ // It should be centered relative to the tab if the margin is set to auto
77
+ const getCenteredIndicatorWidth = tabWidth => {
78
+ if (isCentered) {
79
+ return calculateSize(flattenedStyle?.width, tabWidth);
80
+ }
81
+ if (typeof width === 'number') {
82
+ return width;
83
+ }
84
+ return undefined;
85
+ };
45
86
  const opacity = useAnimatedValue(isWidthDynamic ? 0 : 1);
46
- const indicatorVisible = isWidthDynamic ? layout.width && navigationState.routes.slice(0, navigationState.index).every((_, r) => getTabWidth(r)) : true;
87
+
88
+ // We should fade-in the indicator when we have widths for all the tab items
89
+ const indicatorVisible = isWidthDynamic ? layout.width && navigationState.routes.slice(0, navigationState.index + 1).every((_, r) => getTabWidth(r)) : true;
47
90
  React.useEffect(() => {
48
91
  const fadeInIndicator = () => {
49
- if (!isIndicatorShown.current && isWidthDynamic &&
50
- // We should fade-in the indicator when we have widths for all the tab items
51
- indicatorVisible) {
52
- isIndicatorShown.current = true;
92
+ if (!isIndicatorShown.current && isWidthDynamic && indicatorVisible) {
53
93
  Animated.timing(opacity, {
54
94
  toValue: 1,
55
95
  duration: 150,
56
96
  easing: Easing.in(Easing.linear),
57
97
  useNativeDriver
58
- }).start();
98
+ }).start(({
99
+ finished
100
+ }) => {
101
+ if (finished) {
102
+ isIndicatorShown.current = true;
103
+ }
104
+ });
59
105
  }
60
106
  };
61
107
  fadeInIndicator();
@@ -65,15 +111,16 @@ export function TabBarIndicator({
65
111
  routes
66
112
  } = navigationState;
67
113
  const transform = [];
68
- if (layout.width) {
69
- const translateX = routes.length > 1 ? getTranslateX(position, routes, getTabWidth, direction, gap, width) : 0;
70
- transform.push({
71
- translateX
72
- });
73
- }
74
- if (width === 'auto') {
114
+ const translateX = layout.width && routes.length > 1 ? getTranslateX(position, routes, getTabWidth, direction, gap, index => getCenteredIndicatorWidth(getTabWidth(index))) : 0;
115
+ transform.push({
116
+ translateX
117
+ });
118
+ if (width === 'auto' && constantIndicatorWidth == null) {
75
119
  const inputRange = routes.map((_, i) => i);
76
- const outputRange = inputRange.map(getTabWidth);
120
+ const outputRange = inputRange.map(i => {
121
+ const tabW = getTabWidth(i);
122
+ return calculateSize(flattenedStyle?.width, tabW) ?? getIndicatorWidthWithMargins(tabW, flattenedStyle, direction);
123
+ });
77
124
  transform.push({
78
125
  scaleX: routes.length > 1 ? position.interpolate({
79
126
  inputRange,
@@ -86,26 +133,54 @@ export function TabBarIndicator({
86
133
  }
87
134
  const styleList = [];
88
135
 
89
- // scaleX doesn't work properly on chrome and opera for linux and android
90
- if (Platform.OS === 'web' && width === 'auto') {
136
+ // transform doesn't work properly on chrome and opera for linux and android
137
+ // so we need to use width and left/right instead of scaleX and translateX
138
+ // https://github.com/react-navigation/react-navigation/pull/11440
139
+ if (Platform.OS === 'web' && width === 'auto' && constantIndicatorWidth == null) {
140
+ const start = flattenedStyle?.start;
141
+ const translate = direction === 'rtl' ? Animated.multiply(translateX, -1) : translateX;
142
+ const offset = typeof start === 'number' ? Animated.add(translate, start) : translate;
91
143
  styleList.push({
92
144
  width: transform[1].scaleX
93
- }, {
94
- left: transform[0].translateX
145
+ }, direction === 'rtl' ? {
146
+ right: offset
147
+ } : {
148
+ left: offset
95
149
  });
96
150
  } else {
97
151
  styleList.push({
98
- width: width === 'auto' ? 1 : width
152
+ width: width === 'auto' ?
153
+ // if the indicator has a constant width, use it as is
154
+ // we don't need to scale it to match tab width
155
+ constantIndicatorWidth ?? 1 : getIndicatorWidth(getTabWidth(navigationState.index), width, flattenedStyle, direction)
99
156
  }, {
100
157
  start: `${100 / routes.length * navigationState.index}%`
101
158
  }, {
102
159
  transform
103
160
  });
104
161
  }
162
+ let finalStyle;
163
+ if (hasCustomIndicatorWidth && style != null) {
164
+ const rest = {
165
+ ...flattenedStyle
166
+ };
167
+ delete rest.width;
168
+ if (isCentered) {
169
+ if (rest.margin === 'auto') {
170
+ delete rest.margin;
171
+ }
172
+ if (rest.marginHorizontal === 'auto') {
173
+ delete rest.marginHorizontal;
174
+ }
175
+ }
176
+ finalStyle = rest;
177
+ } else {
178
+ finalStyle = style;
179
+ }
105
180
  return /*#__PURE__*/_jsx(Animated.View, {
106
181
  style: [styles.indicator, styleList, width === 'auto' ? {
107
182
  opacity: opacity
108
- } : null, style],
183
+ } : null, finalStyle],
109
184
  children: children
110
185
  });
111
186
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","Easing","Platform","StyleSheet","useAnimatedValue","jsx","_jsx","useNativeDriver","OS","getTranslateX","position","routes","getTabWidth","direction","gap","width","inputRange","map","_","i","outputRange","reduce","acc","sumTabWidth","j","translateX","interpolate","extrapolate","multiply","TabBarIndicator","layout","navigationState","style","children","isIndicatorShown","useRef","isWidthDynamic","opacity","indicatorVisible","slice","index","every","r","useEffect","fadeInIndicator","current","timing","toValue","duration","easing","in","linear","start","stopAnimation","transform","length","push","scaleX","styleList","left","View","styles","indicator","create","backgroundColor","bottom","end","height"],"sourceRoot":"../../src","sources":["TabBarIndicator.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Animated","Easing","Platform","StyleSheet","useAnimatedValue","jsx","_jsx","useNativeDriver","OS","calculateSize","value","referenceWidth","endsWith","parsed","parseFloat","Number","isFinite","undefined","getIndicatorWidthWithMargins","width","style","direction","marginHorizontal","margin","leftMargin","marginStart","marginEnd","marginLeft","rightMargin","marginRight","Math","max","getIndicatorWidth","tabWidth","customWidth","getTranslateX","position","routes","getTabWidth","gap","getWidth","inputRange","map","_","i","outputRange","sumTabWidth","j","indicatorWidth","tabOffset","translateX","interpolate","extrapolate","multiply","TabBarIndicator","layout","navigationState","children","isIndicatorShown","useRef","isWidthDynamic","flattenedStyle","flatten","hasCustomIndicatorWidth","constantIndicatorWidth","isCentered","getCenteredIndicatorWidth","opacity","indicatorVisible","slice","index","every","r","useEffect","fadeInIndicator","current","timing","toValue","duration","easing","in","linear","start","finished","stopAnimation","transform","length","push","tabW","scaleX","styleList","translate","offset","add","right","left","finalStyle","rest","View","styles","indicator","create","backgroundColor","bottom","end","height"],"sourceRoot":"../../src","sources":["TabBarIndicator.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../src/TabBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAQL,KAAK,4BAA4B,EACjC,KAAK,SAAS,EAGd,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,KAAK,IAAI,cAAc,EAE7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,KAAK,IAAI,eAAe,EAAc,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EACV,KAAK,EAEL,eAAe,EACf,eAAe,EACf,KAAK,EACL,KAAK,EACL,kBAAkB,EAClB,aAAa,EACd,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,KAAK,IAAI,kBAAkB,GAAG;IACxD,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAChE,gBAAgB,CAAC,EAAE,CACjB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KACxC,KAAK,CAAC,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,uBAAuB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,4BAA4B,CAAC;CAC/C,CAAC;AAkRF,wBAAgB,MAAM,CAAC,CAAC,SAAS,KAAK,EAAE,EACtC,eAAwC,EACxC,GAAO,EACP,aAAa,EACb,MAAM,EACN,eAAe,EACf,QAAQ,EACR,WAAW,EACX,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,SAA4D,EAC5D,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,MAAM,EACN,cAAc,EACd,OAAO,GACR,EAAE,KAAK,CAAC,CAAC,CAAC,2CA4UV"}
1
+ {"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../src/TabBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAQL,KAAK,4BAA4B,EACjC,KAAK,SAAS,EAGd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,KAAK,IAAI,cAAc,EAE7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,KAAK,IAAI,eAAe,EAAc,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EACV,KAAK,EAEL,eAAe,EACf,eAAe,EACf,KAAK,EACL,KAAK,EACL,kBAAkB,EAClB,aAAa,EACd,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,KAAK,IAAI,kBAAkB,GAAG;IACxD,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAChE,gBAAgB,CAAC,EAAE,CACjB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KACxC,KAAK,CAAC,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,uBAAuB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,4BAA4B,CAAC;CAC/C,CAAC;AAkRF,wBAAgB,MAAM,CAAC,CAAC,SAAS,KAAK,EAAE,EACtC,eAAwC,EACxC,GAAO,EACP,aAAa,EACb,MAAM,EACN,eAAe,EACf,QAAQ,EACR,WAAW,EACX,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,SAA4D,EAC5D,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,MAAM,EACN,cAAc,EACd,OAAO,GACR,EAAE,KAAK,CAAC,CAAC,CAAC,2CA4SV"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabBarIndicator.d.ts","sourceRoot":"","sources":["../../../src/TabBarIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAIL,KAAK,SAAS,EAEd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,KAAK,EACL,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAEpD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,KAAK,IAAI,kBAAkB,GAAG;IACxD,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,GAAG,MAAM,CAAC;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AA2CF,wBAAgB,eAAe,CAAC,CAAC,SAAS,KAAK,EAAE,EAC/C,WAAW,EACX,MAAM,EACN,eAAe,EACf,QAAQ,EACR,KAAK,EACL,SAAS,EACT,GAAG,EACH,KAAK,EACL,QAAQ,GACT,EAAE,KAAK,CAAC,CAAC,CAAC,2CAiGV"}
1
+ {"version":3,"file":"TabBarIndicator.d.ts","sourceRoot":"","sources":["../../../src/TabBarIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAIL,KAAK,SAAS,EAEd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,KAAK,EACL,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAEpD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,KAAK,IAAI,kBAAkB,GAAG;IACxD,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,GAAG,MAAM,CAAC;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAsGF,wBAAgB,eAAe,CAAC,CAAC,SAAS,KAAK,EAAE,EAC/C,WAAW,EACX,MAAM,EACN,eAAe,EACf,QAAQ,EACR,KAAK,EACL,SAAS,EACT,GAAG,EACH,KAAK,EACL,QAAQ,GACT,EAAE,KAAK,CAAC,CAAC,CAAC,2CAmLV"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-tab-view",
3
3
  "description": "Tab view component for React Native",
4
- "version": "4.2.1",
4
+ "version": "4.3.0",
5
5
  "keywords": [
6
6
  "react-native-component",
7
7
  "react-component",
@@ -48,14 +48,14 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@jest/globals": "^30.0.0",
51
- "@testing-library/react-native": "^13.2.0",
51
+ "@testing-library/react-native": "^13.2.1",
52
52
  "del-cli": "^6.0.0",
53
- "react": "19.0.0",
54
- "react-native": "0.79.3",
55
- "react-native-builder-bob": "^0.40.12",
56
- "react-native-pager-view": "6.8.1",
57
- "react-test-renderer": "19.0.0",
58
- "typescript": "^5.8.3"
53
+ "react": "19.1.0",
54
+ "react-native": "0.81.5",
55
+ "react-native-builder-bob": "^0.40.17",
56
+ "react-native-pager-view": "6.9.1",
57
+ "react-test-renderer": "19.1.0",
58
+ "typescript": "^5.9.2"
59
59
  },
60
60
  "peerDependencies": {
61
61
  "react": ">= 18.2.0",
@@ -80,5 +80,5 @@
80
80
  ]
81
81
  ]
82
82
  },
83
- "gitHead": "64c92e064652e38fce292ff26ec7d613aa33b040"
83
+ "gitHead": "166a1b609e6c12ab6e2bdbf3edffd0a57a70039d"
84
84
  }
package/src/TabBar.tsx CHANGED
@@ -12,9 +12,7 @@ import {
12
12
  StyleSheet,
13
13
  View,
14
14
  type ViewStyle,
15
- type ViewToken,
16
15
  } from 'react-native';
17
- import useLatestCallback from 'use-latest-callback';
18
16
 
19
17
  import {
20
18
  type Props as IndicatorProps,
@@ -364,7 +362,6 @@ export function TabBar<T extends Route>({
364
362
  const flatListRef = React.useRef<FlatList | null>(null);
365
363
  const isFirst = React.useRef(true);
366
364
  const scrollAmount = useAnimatedValue(0);
367
- const measuredTabWidths = React.useRef<Record<string, number>>({});
368
365
  const { routes } = navigationState;
369
366
  const flattenedTabWidth = getFlattenedTabWidth(tabStyle);
370
367
  const isWidthDynamic = flattenedTabWidth === 'auto';
@@ -444,6 +441,10 @@ export function TabBar<T extends Route>({
444
441
  [direction, layout.width, scrollAmount, tabBarWidth]
445
442
  );
446
443
 
444
+ const measuredTabWidths = React.useRef<Record<string, number>>({});
445
+ const animationFrameHandle =
446
+ React.useRef<ReturnType<typeof requestAnimationFrame>>(null);
447
+
447
448
  const renderItem = React.useCallback(
448
449
  ({ item: route, index }: ListRenderItemInfo<T>) => {
449
450
  const {
@@ -458,28 +459,13 @@ export function TabBar<T extends Route>({
458
459
  ? (e: LayoutChangeEvent) => {
459
460
  measuredTabWidths.current[route.key] = e.nativeEvent.layout.width;
460
461
 
461
- // When we have measured widths for all of the tabs, we should updates the state
462
- // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
463
- // If we have more than 10 routes divide updating tabWidths into multiple batches. Here we update only first batch of 10 items.
464
- if (
465
- routes.length > MEASURE_PER_BATCH &&
466
- index === MEASURE_PER_BATCH &&
467
- routes
468
- .slice(0, MEASURE_PER_BATCH)
469
- .every(
470
- (r) => typeof measuredTabWidths.current[r.key] === 'number'
471
- )
472
- ) {
473
- setTabWidths({ ...measuredTabWidths.current });
474
- } else if (
475
- routes.every(
476
- (r) => typeof measuredTabWidths.current[r.key] === 'number'
477
- )
478
- ) {
479
- // When we have measured widths for all of the tabs, we should updates the state
480
- // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
481
- setTabWidths({ ...measuredTabWidths.current });
462
+ if (animationFrameHandle.current != null) {
463
+ cancelAnimationFrame(animationFrameHandle.current);
482
464
  }
465
+
466
+ animationFrameHandle.current = requestAnimationFrame(() => {
467
+ setTabWidths({ ...measuredTabWidths.current });
468
+ });
483
469
  }
484
470
  : undefined;
485
471
 
@@ -600,25 +586,6 @@ export function TabBar<T extends Route>({
600
586
  [scrollAmount]
601
587
  );
602
588
 
603
- const handleViewableItemsChanged = useLatestCallback(
604
- ({ changed }: { changed: ViewToken[] }) => {
605
- if (routes.length <= MEASURE_PER_BATCH) {
606
- return;
607
- }
608
- // Get next vievable item
609
- const item = changed[changed.length - 1];
610
- const index = item?.index || 0;
611
- if (
612
- item.isViewable &&
613
- (index % 10 === 0 ||
614
- index === navigationState.index ||
615
- index === routes.length - 1)
616
- ) {
617
- setTabWidths({ ...measuredTabWidths.current });
618
- }
619
- }
620
- );
621
-
622
589
  return (
623
590
  <Animated.View onLayout={handleLayout} style={[styles.tabBar, style]}>
624
591
  <Animated.View
@@ -671,7 +638,6 @@ export function TabBar<T extends Route>({
671
638
  scrollEnabled={scrollEnabled}
672
639
  bounces={bounces}
673
640
  initialNumToRender={MEASURE_PER_BATCH}
674
- onViewableItemsChanged={handleViewableItemsChanged}
675
641
  alwaysBounceHorizontal={false}
676
642
  scrollsToTop={false}
677
643
  showsHorizontalScrollIndicator={false}
@@ -30,35 +30,94 @@ export type Props<T extends Route> = SceneRendererProps & {
30
30
 
31
31
  const useNativeDriver = Platform.OS !== 'web';
32
32
 
33
+ const calculateSize = (
34
+ value: ViewStyle['width'] | undefined,
35
+ referenceWidth: number
36
+ ): number | undefined => {
37
+ if (typeof value === 'number') {
38
+ return value;
39
+ }
40
+
41
+ if (typeof value === 'string' && value.endsWith('%')) {
42
+ const parsed = parseFloat(value);
43
+
44
+ if (Number.isFinite(parsed)) {
45
+ return referenceWidth * (parsed / 100);
46
+ }
47
+ }
48
+
49
+ return undefined;
50
+ };
51
+
52
+ const getIndicatorWidthWithMargins = (
53
+ width: number,
54
+ style: ViewStyle | undefined,
55
+ direction: LocaleDirection
56
+ ) => {
57
+ const marginHorizontal = style?.marginHorizontal ?? style?.margin;
58
+
59
+ const leftMargin =
60
+ (direction === 'ltr' ? style?.marginStart : style?.marginEnd) ??
61
+ style?.marginLeft ??
62
+ marginHorizontal;
63
+
64
+ const rightMargin =
65
+ (direction === 'rtl' ? style?.marginStart : style?.marginEnd) ??
66
+ style?.marginRight ??
67
+ marginHorizontal;
68
+
69
+ return Math.max(
70
+ 0,
71
+ width -
72
+ (calculateSize(leftMargin, width) ?? 0) -
73
+ (calculateSize(rightMargin, width) ?? 0)
74
+ );
75
+ };
76
+
77
+ const getIndicatorWidth = (
78
+ tabWidth: number,
79
+ width: number | `${number}%`,
80
+ style: ViewStyle | undefined,
81
+ direction: LocaleDirection
82
+ ): number | `${number}%` => {
83
+ const customWidth = calculateSize(style?.width, tabWidth);
84
+
85
+ if (customWidth !== undefined) {
86
+ return customWidth;
87
+ }
88
+
89
+ if (typeof width === 'number') {
90
+ return getIndicatorWidthWithMargins(width, style, direction);
91
+ }
92
+
93
+ return width;
94
+ };
95
+
33
96
  const getTranslateX = (
34
97
  position: Animated.AnimatedInterpolation<number>,
35
98
  routes: Route[],
36
99
  getTabWidth: GetTabWidth,
37
100
  direction: LocaleDirection,
38
101
  gap?: number,
39
- width?: number | string
102
+ getWidth?: (index: number) => number | undefined
40
103
  ) => {
41
104
  const inputRange = routes.map((_, i) => i);
105
+ const outputRange = routes.map((_, i) => {
106
+ let sumTabWidth = 0;
42
107
 
43
- // every index contains widths at all previous indices
44
- const outputRange = routes.reduce<number[]>((acc, _, i) => {
45
- if (typeof width === 'number') {
46
- if (i === 0) return [getTabWidth(i) / 2 - width / 2];
108
+ for (let j = 0; j < i; j++) {
109
+ sumTabWidth += getTabWidth(j);
110
+ }
47
111
 
48
- let sumTabWidth = 0;
49
- for (let j = 0; j < i; j++) {
50
- sumTabWidth += getTabWidth(j);
51
- }
112
+ const indicatorWidth = getWidth?.(i);
113
+ const tabOffset = sumTabWidth + (gap ? gap * i : 0);
52
114
 
53
- return [
54
- ...acc,
55
- sumTabWidth + getTabWidth(i) / 2 + (gap ? gap * i : 0) - width / 2,
56
- ];
57
- } else {
58
- if (i === 0) return [0];
59
- return [...acc, acc[i - 1] + getTabWidth(i - 1) + (gap ?? 0)];
115
+ if (indicatorWidth === undefined) {
116
+ return tabOffset;
60
117
  }
61
- }, []);
118
+
119
+ return tabOffset + getTabWidth(i) / 2 - indicatorWidth / 2;
120
+ });
62
121
 
63
122
  const translateX = position.interpolate({
64
123
  inputRange,
@@ -83,31 +142,60 @@ export function TabBarIndicator<T extends Route>({
83
142
  const isIndicatorShown = React.useRef(false);
84
143
  const isWidthDynamic = width === 'auto';
85
144
 
145
+ const flattenedStyle = StyleSheet.flatten(style);
146
+
147
+ const hasCustomIndicatorWidth =
148
+ typeof flattenedStyle?.width === 'number' ||
149
+ (typeof flattenedStyle?.width === 'string' &&
150
+ flattenedStyle?.width.endsWith('%'));
151
+
152
+ const constantIndicatorWidth =
153
+ typeof flattenedStyle?.width === 'number'
154
+ ? flattenedStyle.width
155
+ : undefined;
156
+
157
+ const isCentered =
158
+ hasCustomIndicatorWidth &&
159
+ (flattenedStyle?.margin === 'auto' ||
160
+ flattenedStyle?.marginHorizontal === 'auto');
161
+
162
+ // If indicator has a custom width, we need to adjust calculations to account for it
163
+ // It should be centered relative to the tab if the margin is set to auto
164
+ const getCenteredIndicatorWidth = (tabWidth: number) => {
165
+ if (isCentered) {
166
+ return calculateSize(flattenedStyle?.width, tabWidth);
167
+ }
168
+
169
+ if (typeof width === 'number') {
170
+ return width;
171
+ }
172
+
173
+ return undefined;
174
+ };
175
+
86
176
  const opacity = useAnimatedValue(isWidthDynamic ? 0 : 1);
87
177
 
178
+ // We should fade-in the indicator when we have widths for all the tab items
88
179
  const indicatorVisible = isWidthDynamic
89
180
  ? layout.width &&
90
181
  navigationState.routes
91
- .slice(0, navigationState.index)
182
+ .slice(0, navigationState.index + 1)
92
183
  .every((_, r) => getTabWidth(r))
93
184
  : true;
94
185
 
95
186
  React.useEffect(() => {
96
187
  const fadeInIndicator = () => {
97
- if (
98
- !isIndicatorShown.current &&
99
- isWidthDynamic &&
100
- // We should fade-in the indicator when we have widths for all the tab items
101
- indicatorVisible
102
- ) {
103
- isIndicatorShown.current = true;
104
-
188
+ if (!isIndicatorShown.current && isWidthDynamic && indicatorVisible) {
105
189
  Animated.timing(opacity, {
106
190
  toValue: 1,
107
191
  duration: 150,
108
192
  easing: Easing.in(Easing.linear),
109
193
  useNativeDriver,
110
- }).start();
194
+ }).start(({ finished }) => {
195
+ if (finished) {
196
+ isIndicatorShown.current = true;
197
+ }
198
+ });
111
199
  }
112
200
  };
113
201
 
@@ -120,18 +208,25 @@ export function TabBarIndicator<T extends Route>({
120
208
 
121
209
  const transform = [];
122
210
 
123
- if (layout.width) {
124
- const translateX =
125
- routes.length > 1
126
- ? getTranslateX(position, routes, getTabWidth, direction, gap, width)
127
- : 0;
211
+ const translateX =
212
+ layout.width && routes.length > 1
213
+ ? getTranslateX(position, routes, getTabWidth, direction, gap, (index) =>
214
+ getCenteredIndicatorWidth(getTabWidth(index))
215
+ )
216
+ : 0;
128
217
 
129
- transform.push({ translateX });
130
- }
218
+ transform.push({ translateX });
131
219
 
132
- if (width === 'auto') {
220
+ if (width === 'auto' && constantIndicatorWidth == null) {
133
221
  const inputRange = routes.map((_, i) => i);
134
- const outputRange = inputRange.map(getTabWidth);
222
+ const outputRange = inputRange.map((i) => {
223
+ const tabW = getTabWidth(i);
224
+
225
+ return (
226
+ calculateSize(flattenedStyle?.width, tabW) ??
227
+ getIndicatorWidthWithMargins(tabW, flattenedStyle, direction)
228
+ );
229
+ });
135
230
 
136
231
  transform.push(
137
232
  {
@@ -150,27 +245,73 @@ export function TabBarIndicator<T extends Route>({
150
245
 
151
246
  const styleList: StyleProp<ViewStyle> = [];
152
247
 
153
- // scaleX doesn't work properly on chrome and opera for linux and android
154
- if (Platform.OS === 'web' && width === 'auto') {
248
+ // transform doesn't work properly on chrome and opera for linux and android
249
+ // so we need to use width and left/right instead of scaleX and translateX
250
+ // https://github.com/react-navigation/react-navigation/pull/11440
251
+ if (
252
+ Platform.OS === 'web' &&
253
+ width === 'auto' &&
254
+ constantIndicatorWidth == null
255
+ ) {
256
+ const start = flattenedStyle?.start;
257
+ const translate =
258
+ direction === 'rtl' ? Animated.multiply(translateX, -1) : translateX;
259
+ const offset =
260
+ typeof start === 'number' ? Animated.add(translate, start) : translate;
261
+
155
262
  styleList.push(
156
263
  { width: transform[1].scaleX },
157
- { left: transform[0].translateX }
264
+ direction === 'rtl' ? { right: offset } : { left: offset }
158
265
  );
159
266
  } else {
160
267
  styleList.push(
161
- { width: width === 'auto' ? 1 : width },
268
+ {
269
+ width:
270
+ width === 'auto'
271
+ ? // if the indicator has a constant width, use it as is
272
+ // we don't need to scale it to match tab width
273
+ (constantIndicatorWidth ?? 1)
274
+ : getIndicatorWidth(
275
+ getTabWidth(navigationState.index),
276
+ width,
277
+ flattenedStyle,
278
+ direction
279
+ ),
280
+ },
162
281
  { start: `${(100 / routes.length) * navigationState.index}%` },
163
282
  { transform }
164
283
  );
165
284
  }
166
285
 
286
+ let finalStyle;
287
+
288
+ if (hasCustomIndicatorWidth && style != null) {
289
+ const rest = { ...flattenedStyle };
290
+
291
+ delete rest.width;
292
+
293
+ if (isCentered) {
294
+ if (rest.margin === 'auto') {
295
+ delete rest.margin;
296
+ }
297
+
298
+ if (rest.marginHorizontal === 'auto') {
299
+ delete rest.marginHorizontal;
300
+ }
301
+ }
302
+
303
+ finalStyle = rest;
304
+ } else {
305
+ finalStyle = style;
306
+ }
307
+
167
308
  return (
168
309
  <Animated.View
169
310
  style={[
170
311
  styles.indicator,
171
312
  styleList,
172
313
  width === 'auto' ? { opacity: opacity } : null,
173
- style,
314
+ finalStyle,
174
315
  ]}
175
316
  >
176
317
  {children}