react-native-tab-view 5.0.0-alpha.3 → 5.0.0-alpha.4

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";
@@ -228,7 +227,6 @@ export function TabBar({
228
227
  const flatListRef = React.useRef(null);
229
228
  const isFirst = React.useRef(true);
230
229
  const scrollAmount = useAnimatedValue(0);
231
- const measuredTabWidths = React.useRef({});
232
230
  const {
233
231
  routes
234
232
  } = navigationState;
@@ -277,6 +275,8 @@ export function TabBar({
277
275
  const separatorsWidth = Math.max(0, routes.length - 1) * gap;
278
276
  const paddingsWidth = Math.max(0, convertPaddingPercentToSize(flattenedPaddingStart, layout.width) + convertPaddingPercentToSize(flattenedPaddingEnd, layout.width));
279
277
  const translateX = React.useMemo(() => getTranslateX(scrollAmount, getMaxScrollDistance(tabBarWidth, layout.width), direction), [direction, layout.width, scrollAmount, tabBarWidth]);
278
+ const measuredTabWidths = React.useRef({});
279
+ const animationFrameHandle = React.useRef(null);
280
280
  const renderItem = React.useCallback(({
281
281
  item: route,
282
282
  index
@@ -298,21 +298,14 @@ export function TabBar({
298
298
  } = options?.[route.key] ?? {};
299
299
  const onLayout = isWidthDynamic ? e => {
300
300
  measuredTabWidths.current[route.key] = e.nativeEvent.layout.width;
301
-
302
- // When we have measured widths for all of the tabs, we should updates the state
303
- // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
304
- // If we have more than 10 routes divide updating tabWidths into multiple batches. Here we update only first batch of 10 items.
305
- if (routes.length > MEASURE_PER_BATCH && index === MEASURE_PER_BATCH && routes.slice(0, MEASURE_PER_BATCH).every(r => typeof measuredTabWidths.current[r.key] === 'number')) {
306
- setTabWidths({
307
- ...measuredTabWidths.current
308
- });
309
- } else if (routes.every(r => typeof measuredTabWidths.current[r.key] === 'number')) {
310
- // When we have measured widths for all of the tabs, we should updates the state
311
- // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
301
+ if (animationFrameHandle.current != null) {
302
+ cancelAnimationFrame(animationFrameHandle.current);
303
+ }
304
+ animationFrameHandle.current = requestAnimationFrame(() => {
312
305
  setTabWidths({
313
306
  ...measuredTabWidths.current
314
307
  });
315
- }
308
+ });
316
309
  } : undefined;
317
310
  const onPress = () => {
318
311
  const event = {
@@ -388,21 +381,6 @@ export function TabBar({
388
381
  }], {
389
382
  useNativeDriver
390
383
  }), [scrollAmount]);
391
- const handleViewableItemsChanged = useLatestCallback(({
392
- changed
393
- }) => {
394
- if (routes.length <= MEASURE_PER_BATCH) {
395
- return;
396
- }
397
- // Get next vievable item
398
- const item = changed[changed.length - 1];
399
- const index = item?.index || 0;
400
- if (item.isViewable && (index % 10 === 0 || index === navigationState.index || index === routes.length - 1)) {
401
- setTabWidths({
402
- ...measuredTabWidths.current
403
- });
404
- }
405
- });
406
384
  return /*#__PURE__*/_jsxs(Animated.View, {
407
385
  ref: containerRef,
408
386
  onLayout: onLayout,
@@ -449,7 +427,6 @@ export function TabBar({
449
427
  scrollEnabled: scrollEnabled,
450
428
  bounces: bounces,
451
429
  initialNumToRender: MEASURE_PER_BATCH,
452
- onViewableItemsChanged: handleViewableItemsChanged,
453
430
  alwaysBounceHorizontal: false,
454
431
  scrollsToTop: false,
455
432
  showsHorizontalScrollIndicator: false,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","I18nManager","Platform","StyleSheet","View","useLatestCallback","TabBarIndicator","TabBarItem","useAnimatedValue","useMeasureLayout","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useNativeDriver","OS","Separator","width","style","getFlattenedTabWidth","tabStyle","flatten","getFlattenedPaddingStart","flattenStyle","paddingLeft","paddingStart","paddingHorizontal","getFlattenedPaddingEnd","paddingRight","paddingEnd","convertPaddingPercentToSize","value","layoutWidth","endsWith","parseFloat","Number","isFinite","getComputedTabWidth","index","routes","scrollEnabled","tabWidths","flattenedTabWidth","flattenedPaddingStart","flattenedPaddingEnd","gap","key","gapTotalWidth","length","paddingTotalWidth","getMaxScrollDistance","tabBarWidth","getTranslateX","scrollAmount","maxScrollDistance","direction","multiply","add","getTabBarWidth","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","navigationState","position","activeColor","bounces","contentContainerStyle","inactiveColor","indicatorContainerStyle","indicatorStyle","onTabLongPress","onTabPress","pressColor","pressOpacity","getConstants","isRTL","renderTabBarItem","android_ripple","options","containerRef","useRef","layout","onLayout","setTabWidths","useState","flatListRef","isFirst","measuredTabWidths","isWidthDynamic","scrollOffset","hasMeasuredTabWidths","Boolean","slice","every","r","useEffect","current","scrollToOffset","offset","animated","separatorsWidth","translateX","useMemo","renderItem","useCallback","item","labelText","rest","e","nativeEvent","onPress","event","defaultPrevented","preventDefault","onLongPress","defaultTabWidth","children","keyExtractor","contentContainerStyleMemoized","styles","tabContent","handleScroll","contentOffset","x","handleViewableItemsChanged","changed","isViewable","ref","tabBar","indicatorContainer","transform","start","end","getTabWidth","scroll","FlatList","data","horizontal","role","keyboardShouldPersistTaps","initialNumToRender","onViewableItemsChanged","alwaysBounceHorizontal","scrollsToTop","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","automaticallyAdjustContentInsets","overScrollMode","scrollEventThrottle","onScroll","create","overflow","select","default","web","zIndex","backgroundColor","elevation","shadowColor","shadowOpacity","shadowRadius","hairlineWidth","shadowOffset","height","boxShadow","flexGrow","flexDirection","flexWrap","top","bottom","pointerEvents"],"sourceRoot":"../../src","sources":["TabBar.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Animated","I18nManager","Platform","StyleSheet","View","TabBarIndicator","TabBarItem","useAnimatedValue","useMeasureLayout","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useNativeDriver","OS","Separator","width","style","getFlattenedTabWidth","tabStyle","flatten","getFlattenedPaddingStart","flattenStyle","paddingLeft","paddingStart","paddingHorizontal","getFlattenedPaddingEnd","paddingRight","paddingEnd","convertPaddingPercentToSize","value","layoutWidth","endsWith","parseFloat","Number","isFinite","getComputedTabWidth","index","routes","scrollEnabled","tabWidths","flattenedTabWidth","flattenedPaddingStart","flattenedPaddingEnd","gap","key","gapTotalWidth","length","paddingTotalWidth","getMaxScrollDistance","tabBarWidth","getTranslateX","scrollAmount","maxScrollDistance","direction","multiply","add","getTabBarWidth","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","navigationState","position","activeColor","bounces","contentContainerStyle","inactiveColor","indicatorContainerStyle","indicatorStyle","onTabLongPress","onTabPress","pressColor","pressOpacity","getConstants","isRTL","renderTabBarItem","android_ripple","options","containerRef","useRef","layout","onLayout","setTabWidths","useState","flatListRef","isFirst","isWidthDynamic","scrollOffset","hasMeasuredTabWidths","Boolean","slice","every","r","useEffect","current","scrollToOffset","offset","animated","separatorsWidth","translateX","useMemo","measuredTabWidths","animationFrameHandle","renderItem","useCallback","item","labelText","rest","e","nativeEvent","cancelAnimationFrame","requestAnimationFrame","onPress","event","defaultPrevented","preventDefault","onLongPress","defaultTabWidth","children","keyExtractor","contentContainerStyleMemoized","styles","tabContent","handleScroll","contentOffset","x","ref","tabBar","indicatorContainer","transform","start","end","getTabWidth","scroll","FlatList","data","horizontal","role","keyboardShouldPersistTaps","initialNumToRender","alwaysBounceHorizontal","scrollsToTop","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","automaticallyAdjustContentInsets","overScrollMode","scrollEventThrottle","onScroll","create","overflow","select","default","web","zIndex","backgroundColor","elevation","shadowColor","shadowOpacity","shadowRadius","hairlineWidth","shadowOffset","height","boxShadow","flexGrow","flexDirection","flexWrap","top","bottom","pointerEvents"],"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,
@@ -41,20 +66,41 @@ export function TabBarIndicator({
41
66
  }) {
42
67
  const isIndicatorShown = React.useRef(false);
43
68
  const isWidthDynamic = width === 'auto';
69
+ const flattenedStyle = StyleSheet.flatten(style);
70
+ const hasCustomIndicatorWidth = typeof flattenedStyle?.width === 'number' || typeof flattenedStyle?.width === 'string' && flattenedStyle?.width.endsWith('%');
71
+ const constantIndicatorWidth = typeof flattenedStyle?.width === 'number' ? flattenedStyle.width : undefined;
72
+ const isCentered = hasCustomIndicatorWidth && (flattenedStyle?.margin === 'auto' || flattenedStyle?.marginHorizontal === 'auto');
73
+
74
+ // If indicator has a custom width, we need to adjust calculations to account for it
75
+ // It should be centered relative to the tab if the margin is set to auto
76
+ const getCenteredIndicatorWidth = tabWidth => {
77
+ if (isCentered) {
78
+ return calculateSize(flattenedStyle?.width, tabWidth);
79
+ }
80
+ if (typeof width === 'number') {
81
+ return width;
82
+ }
83
+ return undefined;
84
+ };
44
85
  const opacity = useAnimatedValue(isWidthDynamic ? 0 : 1);
45
- const indicatorVisible = isWidthDynamic ? navigationState.routes.slice(0, navigationState.index).every((_, r) => getTabWidth(r)) : true;
86
+
87
+ // We should fade-in the indicator when we have widths for all the tab items
88
+ const indicatorVisible = isWidthDynamic ? navigationState.routes.slice(0, navigationState.index + 1).every((_, r) => getTabWidth(r)) : true;
46
89
  React.useEffect(() => {
47
90
  const fadeInIndicator = () => {
48
- if (!isIndicatorShown.current && isWidthDynamic &&
49
- // We should fade-in the indicator when we have widths for all the tab items
50
- indicatorVisible) {
51
- isIndicatorShown.current = true;
91
+ if (!isIndicatorShown.current && isWidthDynamic && indicatorVisible) {
52
92
  Animated.timing(opacity, {
53
93
  toValue: 1,
54
94
  duration: 150,
55
95
  easing: Easing.in(Easing.linear),
56
96
  useNativeDriver
57
- }).start();
97
+ }).start(({
98
+ finished
99
+ }) => {
100
+ if (finished) {
101
+ isIndicatorShown.current = true;
102
+ }
103
+ });
58
104
  }
59
105
  };
60
106
  fadeInIndicator();
@@ -64,13 +110,16 @@ export function TabBarIndicator({
64
110
  routes
65
111
  } = navigationState;
66
112
  const transform = [];
67
- const translateX = routes.length > 1 ? getTranslateX(position, routes, getTabWidth, direction, gap, width) : 0;
113
+ const translateX = routes.length > 1 ? getTranslateX(position, routes, getTabWidth, direction, gap, index => getCenteredIndicatorWidth(getTabWidth(index))) : 0;
68
114
  transform.push({
69
115
  translateX
70
116
  });
71
- if (width === 'auto') {
117
+ if (width === 'auto' && constantIndicatorWidth == null) {
72
118
  const inputRange = routes.map((_, i) => i);
73
- const outputRange = inputRange.map(getTabWidth);
119
+ const outputRange = inputRange.map(i => {
120
+ const tabW = getTabWidth(i);
121
+ return calculateSize(flattenedStyle?.width, tabW) ?? getIndicatorWidthWithMargins(tabW, flattenedStyle, direction);
122
+ });
74
123
  transform.push({
75
124
  scaleX: routes.length > 1 ? position.interpolate({
76
125
  inputRange,
@@ -83,26 +132,54 @@ export function TabBarIndicator({
83
132
  }
84
133
  const styleList = [];
85
134
 
86
- // scaleX doesn't work properly on chrome and opera for linux and android
87
- if (Platform.OS === 'web' && width === 'auto') {
135
+ // transform doesn't work properly on chrome and opera for linux and android
136
+ // so we need to use width and left/right instead of scaleX and translateX
137
+ // https://github.com/react-navigation/react-navigation/pull/11440
138
+ if (Platform.OS === 'web' && width === 'auto' && constantIndicatorWidth == null) {
139
+ const start = flattenedStyle?.start;
140
+ const translate = direction === 'rtl' ? Animated.multiply(translateX, -1) : translateX;
141
+ const offset = typeof start === 'number' ? Animated.add(translate, start) : translate;
88
142
  styleList.push({
89
143
  width: transform[1].scaleX
90
- }, {
91
- left: transform[0].translateX
144
+ }, direction === 'rtl' ? {
145
+ right: offset
146
+ } : {
147
+ left: offset
92
148
  });
93
149
  } else {
94
150
  styleList.push({
95
- width: width === 'auto' ? 1 : width
151
+ width: width === 'auto' ?
152
+ // if the indicator has a constant width, use it as is
153
+ // we don't need to scale it to match tab width
154
+ constantIndicatorWidth ?? 1 : getIndicatorWidth(getTabWidth(navigationState.index), width, flattenedStyle, direction)
96
155
  }, {
97
156
  start: `${100 / routes.length * navigationState.index}%`
98
157
  }, {
99
158
  transform
100
159
  });
101
160
  }
161
+ let finalStyle;
162
+ if (hasCustomIndicatorWidth && style != null) {
163
+ const rest = {
164
+ ...flattenedStyle
165
+ };
166
+ delete rest.width;
167
+ if (isCentered) {
168
+ if (rest.margin === 'auto') {
169
+ delete rest.margin;
170
+ }
171
+ if (rest.marginHorizontal === 'auto') {
172
+ delete rest.marginHorizontal;
173
+ }
174
+ }
175
+ finalStyle = rest;
176
+ } else {
177
+ finalStyle = style;
178
+ }
102
179
  return /*#__PURE__*/_jsx(Animated.View, {
103
180
  style: [styles.indicator, styleList, width === 'auto' ? {
104
181
  opacity: opacity
105
- } : null, style],
182
+ } : null, finalStyle],
106
183
  children: children
107
184
  });
108
185
  }
@@ -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","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":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EAERC,UAAU,QAEL,cAAc;AAQrB,SAASC,gBAAgB,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AActD,MAAMC,eAAe,GAAGL,QAAQ,CAACM,EAAE,KAAK,KAAK;AAE7C,MAAMC,aAAa,GAAGA,CACpBC,QAAgD,EAChDC,MAAe,EACfC,WAAwB,EACxBC,SAA0B,EAC1BC,GAAY,EACZC,KAAuB,KACpB;EACH,MAAMC,UAAU,GAAGL,MAAM,CAACM,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC;;EAE1C;EACA,MAAMC,WAAW,GAAGT,MAAM,CAACU,MAAM,CAAW,CAACC,GAAG,EAAEJ,CAAC,EAAEC,CAAC,KAAK;IACzD,IAAI,OAAOJ,KAAK,KAAK,QAAQ,EAAE;MAC7B,IAAII,CAAC,KAAK,CAAC,EAAE,OAAO,CAACP,WAAW,CAACO,CAAC,CAAC,GAAG,CAAC,GAAGJ,KAAK,GAAG,CAAC,CAAC;MAEpD,IAAIQ,WAAW,GAAG,CAAC;MACnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,CAAC,EAAEK,CAAC,EAAE,EAAE;QAC1BD,WAAW,IAAIX,WAAW,CAACY,CAAC,CAAC;MAC/B;MAEA,OAAO,CACL,GAAGF,GAAG,EACNC,WAAW,GAAGX,WAAW,CAACO,CAAC,CAAC,GAAG,CAAC,IAAIL,GAAG,GAAGA,GAAG,GAAGK,CAAC,GAAG,CAAC,CAAC,GAAGJ,KAAK,GAAG,CAAC,CACnE;IACH,CAAC,MAAM;MACL,IAAII,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;MACvB,OAAO,CAAC,GAAGG,GAAG,EAAEA,GAAG,CAACH,CAAC,GAAG,CAAC,CAAC,GAAGP,WAAW,CAACO,CAAC,GAAG,CAAC,CAAC,IAAIL,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/D;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMW,UAAU,GAAGf,QAAQ,CAACgB,WAAW,CAAC;IACtCV,UAAU;IACVI,WAAW;IACXO,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,OAAO3B,QAAQ,CAAC4B,QAAQ,CAACH,UAAU,EAAEZ,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,OAAO,SAASgB,eAAeA,CAAkB;EAC/CjB,WAAW;EACXkB,eAAe;EACfpB,QAAQ;EACRK,KAAK;EACLF,SAAS;EACTC,GAAG;EACHiB,KAAK;EACLC;AACQ,CAAC,EAAE;EACX,MAAMC,gBAAgB,GAAGlC,KAAK,CAACmC,MAAM,CAAC,KAAK,CAAC;EAC5C,MAAMC,cAAc,GAAGpB,KAAK,KAAK,MAAM;EAEvC,MAAMqB,OAAO,GAAGhC,gBAAgB,CAAC+B,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;EAExD,MAAME,gBAAgB,GAAGF,cAAc,GACnCL,eAAe,CAACnB,MAAM,CACnB2B,KAAK,CAAC,CAAC,EAAER,eAAe,CAACS,KAAK,CAAC,CAC/BC,KAAK,CAAC,CAACtB,CAAC,EAAEuB,CAAC,KAAK7B,WAAW,CAAC6B,CAAC,CAAC,CAAC,GAClC,IAAI;EAER1C,KAAK,CAAC2C,SAAS,CAAC,MAAM;IACpB,MAAMC,eAAe,GAAGA,CAAA,KAAM;MAC5B,IACE,CAACV,gBAAgB,CAACW,OAAO,IACzBT,cAAc;MACd;MACAE,gBAAgB,EAChB;QACAJ,gBAAgB,CAACW,OAAO,GAAG,IAAI;QAE/B5C,QAAQ,CAAC6C,MAAM,CAACT,OAAO,EAAE;UACvBU,OAAO,EAAE,CAAC;UACVC,QAAQ,EAAE,GAAG;UACbC,MAAM,EAAE/C,MAAM,CAACgD,EAAE,CAAChD,MAAM,CAACiD,MAAM,CAAC;UAChC3C;QACF,CAAC,CAAC,CAAC4C,KAAK,CAAC,CAAC;MACZ;IACF,CAAC;IAEDR,eAAe,CAAC,CAAC;IAEjB,OAAO,MAAMP,OAAO,CAACgB,aAAa,CAAC,CAAC;EACtC,CAAC,EAAE,CAACf,gBAAgB,EAAEF,cAAc,EAAEC,OAAO,CAAC,CAAC;EAE/C,MAAM;IAAEzB;EAAO,CAAC,GAAGmB,eAAe;EAElC,MAAMuB,SAAS,GAAG,EAAE;EAEpB,MAAM5B,UAAU,GACdd,MAAM,CAAC2C,MAAM,GAAG,CAAC,GACb7C,aAAa,CAACC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,EAAEC,SAAS,EAAEC,GAAG,EAAEC,KAAK,CAAC,GACnE,CAAC;EAEPsC,SAAS,CAACE,IAAI,CAAC;IAAE9B;EAAW,CAAC,CAAC;EAE9B,IAAIV,KAAK,KAAK,MAAM,EAAE;IACpB,MAAMC,UAAU,GAAGL,MAAM,CAACM,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC;IAC1C,MAAMC,WAAW,GAAGJ,UAAU,CAACC,GAAG,CAACL,WAAW,CAAC;IAE/CyC,SAAS,CAACE,IAAI,CACZ;MACEC,MAAM,EACJ7C,MAAM,CAAC2C,MAAM,GAAG,CAAC,GACb5C,QAAQ,CAACgB,WAAW,CAAC;QACnBV,UAAU;QACVI,WAAW;QACXO,WAAW,EAAE;MACf,CAAC,CAAC,GACFP,WAAW,CAAC,CAAC;IACrB,CAAC,EACD;MAAEK,UAAU,EAAEZ,SAAS,KAAK,KAAK,GAAG,CAAC,GAAG,GAAG;IAAI,CACjD,CAAC;EACH;EAEA,MAAM4C,SAA+B,GAAG,EAAE;;EAE1C;EACA,IAAIvD,QAAQ,CAACM,EAAE,KAAK,KAAK,IAAIO,KAAK,KAAK,MAAM,EAAE;IAC7C0C,SAAS,CAACF,IAAI,CACZ;MAAExC,KAAK,EAAEsC,SAAS,CAAC,CAAC,CAAC,CAACG;IAAO,CAAC,EAC9B;MAAEE,IAAI,EAAEL,SAAS,CAAC,CAAC,CAAC,CAAC5B;IAAW,CAClC,CAAC;EACH,CAAC,MAAM;IACLgC,SAAS,CAACF,IAAI,CACZ;MAAExC,KAAK,EAAEA,KAAK,KAAK,MAAM,GAAG,CAAC,GAAGA;IAAM,CAAC,EACvC;MAAEoC,KAAK,EAAE,GAAI,GAAG,GAAGxC,MAAM,CAAC2C,MAAM,GAAIxB,eAAe,CAACS,KAAK;IAAI,CAAC,EAC9D;MAAEc;IAAU,CACd,CAAC;EACH;EAEA,oBACE/C,IAAA,CAACN,QAAQ,CAAC2D,IAAI;IACZ5B,KAAK,EAAE,CACL6B,MAAM,CAACC,SAAS,EAChBJ,SAAS,EACT1C,KAAK,KAAK,MAAM,GAAG;MAAEqB,OAAO,EAAEA;IAAQ,CAAC,GAAG,IAAI,EAC9CL,KAAK,CACL;IAAAC,QAAA,EAEDA;EAAQ,CACI,CAAC;AAEpB;AAEA,MAAM4B,MAAM,GAAGzD,UAAU,CAAC2D,MAAM,CAAC;EAC/BD,SAAS,EAAE;IACTE,eAAe,EAAE,kBAAkB;IACnCrD,QAAQ,EAAE,UAAU;IACpByC,KAAK,EAAE,CAAC;IACRa,MAAM,EAAE,CAAC;IACTC,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","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","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":"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"}
1
+ {"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../src/TabBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,KAAK,UAAU,EAOf,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,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,KAAK,EACL,KAAK,EACL,kBAAkB,EAClB,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,KAAK,IAAI,kBAAkB,GACrD,iBAAiB,GAAG;IAClB,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACvC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACvD,eAAe,CAAC,EACZ,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,GAC/C,SAAS,CAAC;IACd,gBAAgB,CAAC,EACb,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,CAAC,GACrE,SAAS,CAAC;IACd,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC5C,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAClD,uBAAuB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3D,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACzD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;CAC3D,CAAC;AAoRJ,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,EACN,cAAc,EACd,OAAO,GACR,EAAE,KAAK,CAAC,CAAC,CAAC,2CAwSV"}
@@ -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,eAAe,EACf,QAAQ,EACR,KAAK,EACL,SAAS,EACT,GAAG,EACH,KAAK,EACL,QAAQ,GACT,EAAE,KAAK,CAAC,CAAC,CAAC,2CA8FV"}
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,eAAe,EACf,QAAQ,EACR,KAAK,EACL,SAAS,EACT,GAAG,EACH,KAAK,EACL,QAAQ,GACT,EAAE,KAAK,CAAC,CAAC,CAAC,2CAkLV"}
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": "5.0.0-alpha.3",
4
+ "version": "5.0.0-alpha.4",
5
5
  "keywords": [
6
6
  "react-native-component",
7
7
  "react-component",
@@ -58,7 +58,7 @@
58
58
  "typescript": "^5.9.2"
59
59
  },
60
60
  "peerDependencies": {
61
- "react": ">= 19.0.0",
61
+ "react": ">= 19.2.0",
62
62
  "react-native": "*",
63
63
  "react-native-pager-view": ">= 7.0.0"
64
64
  },
@@ -80,5 +80,5 @@
80
80
  ]
81
81
  ]
82
82
  },
83
- "gitHead": "4ac6c41c1f751fba9dd82db050865bc71f3310f5"
83
+ "gitHead": "1f1525607d00eb924e466889ec0e703a3f5474b7"
84
84
  }
package/src/TabBar.tsx CHANGED
@@ -13,9 +13,7 @@ import {
13
13
  StyleSheet,
14
14
  View,
15
15
  type ViewStyle,
16
- type ViewToken,
17
16
  } from 'react-native';
18
- import useLatestCallback from 'use-latest-callback';
19
17
 
20
18
  import {
21
19
  type Props as IndicatorProps,
@@ -370,7 +368,6 @@ export function TabBar<T extends Route>({
370
368
  const flatListRef = React.useRef<FlatList | null>(null);
371
369
  const isFirst = React.useRef(true);
372
370
  const scrollAmount = useAnimatedValue(0);
373
- const measuredTabWidths = React.useRef<Record<string, number>>({});
374
371
  const { routes } = navigationState;
375
372
  const flattenedTabWidth = getFlattenedTabWidth(tabStyle);
376
373
  const isWidthDynamic = flattenedTabWidth === 'auto';
@@ -442,6 +439,10 @@ export function TabBar<T extends Route>({
442
439
  [direction, layout.width, scrollAmount, tabBarWidth]
443
440
  );
444
441
 
442
+ const measuredTabWidths = React.useRef<Record<string, number>>({});
443
+ const animationFrameHandle =
444
+ React.useRef<ReturnType<typeof requestAnimationFrame>>(null);
445
+
445
446
  const renderItem = React.useCallback(
446
447
  ({ item: route, index }: ListRenderItemInfo<T>) => {
447
448
  const {
@@ -456,28 +457,13 @@ export function TabBar<T extends Route>({
456
457
  ? (e: LayoutChangeEvent) => {
457
458
  measuredTabWidths.current[route.key] = e.nativeEvent.layout.width;
458
459
 
459
- // When we have measured widths for all of the tabs, we should updates the state
460
- // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
461
- // If we have more than 10 routes divide updating tabWidths into multiple batches. Here we update only first batch of 10 items.
462
- if (
463
- routes.length > MEASURE_PER_BATCH &&
464
- index === MEASURE_PER_BATCH &&
465
- routes
466
- .slice(0, MEASURE_PER_BATCH)
467
- .every(
468
- (r) => typeof measuredTabWidths.current[r.key] === 'number'
469
- )
470
- ) {
471
- setTabWidths({ ...measuredTabWidths.current });
472
- } else if (
473
- routes.every(
474
- (r) => typeof measuredTabWidths.current[r.key] === 'number'
475
- )
476
- ) {
477
- // When we have measured widths for all of the tabs, we should updates the state
478
- // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
479
- setTabWidths({ ...measuredTabWidths.current });
460
+ if (animationFrameHandle.current != null) {
461
+ cancelAnimationFrame(animationFrameHandle.current);
480
462
  }
463
+
464
+ animationFrameHandle.current = requestAnimationFrame(() => {
465
+ setTabWidths({ ...measuredTabWidths.current });
466
+ });
481
467
  }
482
468
  : undefined;
483
469
 
@@ -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
624
591
  ref={containerRef}
@@ -673,7 +640,6 @@ export function TabBar<T extends Route>({
673
640
  scrollEnabled={scrollEnabled}
674
641
  bounces={bounces}
675
642
  initialNumToRender={MEASURE_PER_BATCH}
676
- onViewableItemsChanged={handleViewableItemsChanged}
677
643
  alwaysBounceHorizontal={false}
678
644
  scrollsToTop={false}
679
645
  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,
@@ -82,30 +141,59 @@ export function TabBarIndicator<T extends Route>({
82
141
  const isIndicatorShown = React.useRef(false);
83
142
  const isWidthDynamic = width === 'auto';
84
143
 
144
+ const flattenedStyle = StyleSheet.flatten(style);
145
+
146
+ const hasCustomIndicatorWidth =
147
+ typeof flattenedStyle?.width === 'number' ||
148
+ (typeof flattenedStyle?.width === 'string' &&
149
+ flattenedStyle?.width.endsWith('%'));
150
+
151
+ const constantIndicatorWidth =
152
+ typeof flattenedStyle?.width === 'number'
153
+ ? flattenedStyle.width
154
+ : undefined;
155
+
156
+ const isCentered =
157
+ hasCustomIndicatorWidth &&
158
+ (flattenedStyle?.margin === 'auto' ||
159
+ flattenedStyle?.marginHorizontal === 'auto');
160
+
161
+ // If indicator has a custom width, we need to adjust calculations to account for it
162
+ // It should be centered relative to the tab if the margin is set to auto
163
+ const getCenteredIndicatorWidth = (tabWidth: number) => {
164
+ if (isCentered) {
165
+ return calculateSize(flattenedStyle?.width, tabWidth);
166
+ }
167
+
168
+ if (typeof width === 'number') {
169
+ return width;
170
+ }
171
+
172
+ return undefined;
173
+ };
174
+
85
175
  const opacity = useAnimatedValue(isWidthDynamic ? 0 : 1);
86
176
 
177
+ // We should fade-in the indicator when we have widths for all the tab items
87
178
  const indicatorVisible = isWidthDynamic
88
179
  ? navigationState.routes
89
- .slice(0, navigationState.index)
180
+ .slice(0, navigationState.index + 1)
90
181
  .every((_, r) => getTabWidth(r))
91
182
  : true;
92
183
 
93
184
  React.useEffect(() => {
94
185
  const fadeInIndicator = () => {
95
- if (
96
- !isIndicatorShown.current &&
97
- isWidthDynamic &&
98
- // We should fade-in the indicator when we have widths for all the tab items
99
- indicatorVisible
100
- ) {
101
- isIndicatorShown.current = true;
102
-
186
+ if (!isIndicatorShown.current && isWidthDynamic && indicatorVisible) {
103
187
  Animated.timing(opacity, {
104
188
  toValue: 1,
105
189
  duration: 150,
106
190
  easing: Easing.in(Easing.linear),
107
191
  useNativeDriver,
108
- }).start();
192
+ }).start(({ finished }) => {
193
+ if (finished) {
194
+ isIndicatorShown.current = true;
195
+ }
196
+ });
109
197
  }
110
198
  };
111
199
 
@@ -120,14 +208,23 @@ export function TabBarIndicator<T extends Route>({
120
208
 
121
209
  const translateX =
122
210
  routes.length > 1
123
- ? getTranslateX(position, routes, getTabWidth, direction, gap, width)
211
+ ? getTranslateX(position, routes, getTabWidth, direction, gap, (index) =>
212
+ getCenteredIndicatorWidth(getTabWidth(index))
213
+ )
124
214
  : 0;
125
215
 
126
216
  transform.push({ translateX });
127
217
 
128
- if (width === 'auto') {
218
+ if (width === 'auto' && constantIndicatorWidth == null) {
129
219
  const inputRange = routes.map((_, i) => i);
130
- const outputRange = inputRange.map(getTabWidth);
220
+ const outputRange = inputRange.map((i) => {
221
+ const tabW = getTabWidth(i);
222
+
223
+ return (
224
+ calculateSize(flattenedStyle?.width, tabW) ??
225
+ getIndicatorWidthWithMargins(tabW, flattenedStyle, direction)
226
+ );
227
+ });
131
228
 
132
229
  transform.push(
133
230
  {
@@ -146,27 +243,73 @@ export function TabBarIndicator<T extends Route>({
146
243
 
147
244
  const styleList: StyleProp<ViewStyle> = [];
148
245
 
149
- // scaleX doesn't work properly on chrome and opera for linux and android
150
- if (Platform.OS === 'web' && width === 'auto') {
246
+ // transform doesn't work properly on chrome and opera for linux and android
247
+ // so we need to use width and left/right instead of scaleX and translateX
248
+ // https://github.com/react-navigation/react-navigation/pull/11440
249
+ if (
250
+ Platform.OS === 'web' &&
251
+ width === 'auto' &&
252
+ constantIndicatorWidth == null
253
+ ) {
254
+ const start = flattenedStyle?.start;
255
+ const translate =
256
+ direction === 'rtl' ? Animated.multiply(translateX, -1) : translateX;
257
+ const offset =
258
+ typeof start === 'number' ? Animated.add(translate, start) : translate;
259
+
151
260
  styleList.push(
152
261
  { width: transform[1].scaleX },
153
- { left: transform[0].translateX }
262
+ direction === 'rtl' ? { right: offset } : { left: offset }
154
263
  );
155
264
  } else {
156
265
  styleList.push(
157
- { width: width === 'auto' ? 1 : width },
266
+ {
267
+ width:
268
+ width === 'auto'
269
+ ? // if the indicator has a constant width, use it as is
270
+ // we don't need to scale it to match tab width
271
+ (constantIndicatorWidth ?? 1)
272
+ : getIndicatorWidth(
273
+ getTabWidth(navigationState.index),
274
+ width,
275
+ flattenedStyle,
276
+ direction
277
+ ),
278
+ },
158
279
  { start: `${(100 / routes.length) * navigationState.index}%` },
159
280
  { transform }
160
281
  );
161
282
  }
162
283
 
284
+ let finalStyle;
285
+
286
+ if (hasCustomIndicatorWidth && style != null) {
287
+ const rest = { ...flattenedStyle };
288
+
289
+ delete rest.width;
290
+
291
+ if (isCentered) {
292
+ if (rest.margin === 'auto') {
293
+ delete rest.margin;
294
+ }
295
+
296
+ if (rest.marginHorizontal === 'auto') {
297
+ delete rest.marginHorizontal;
298
+ }
299
+ }
300
+
301
+ finalStyle = rest;
302
+ } else {
303
+ finalStyle = style;
304
+ }
305
+
163
306
  return (
164
307
  <Animated.View
165
308
  style={[
166
309
  styles.indicator,
167
310
  styleList,
168
311
  width === 'auto' ? { opacity: opacity } : null,
169
- style,
312
+ finalStyle,
170
313
  ]}
171
314
  >
172
315
  {children}