react-native-tab-view 3.3.3 → 3.4.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.
Files changed (88) hide show
  1. package/README.md +4 -0
  2. package/lib/commonjs/Pager.android.js +0 -2
  3. package/lib/commonjs/Pager.android.js.map +1 -1
  4. package/lib/commonjs/Pager.ios.js +0 -2
  5. package/lib/commonjs/Pager.ios.js.map +1 -1
  6. package/lib/commonjs/Pager.js +0 -2
  7. package/lib/commonjs/Pager.js.map +1 -1
  8. package/lib/commonjs/PagerViewAdapter.js +0 -24
  9. package/lib/commonjs/PagerViewAdapter.js.map +1 -1
  10. package/lib/commonjs/PanResponderAdapter.js +11 -42
  11. package/lib/commonjs/PanResponderAdapter.js.map +1 -1
  12. package/lib/commonjs/PlatformPressable.js +1 -7
  13. package/lib/commonjs/PlatformPressable.js.map +1 -1
  14. package/lib/commonjs/SceneMap.js +0 -5
  15. package/lib/commonjs/SceneMap.js.map +1 -1
  16. package/lib/commonjs/SceneView.js +4 -15
  17. package/lib/commonjs/SceneView.js.map +1 -1
  18. package/lib/commonjs/TabBar.js +24 -60
  19. package/lib/commonjs/TabBar.js.map +1 -1
  20. package/lib/commonjs/TabBarIndicator.js +7 -18
  21. package/lib/commonjs/TabBarIndicator.js.map +1 -1
  22. package/lib/commonjs/TabBarItem.js +7 -31
  23. package/lib/commonjs/TabBarItem.js.map +1 -1
  24. package/lib/commonjs/TabView.js +9 -19
  25. package/lib/commonjs/TabView.js.map +1 -1
  26. package/lib/commonjs/index.js +0 -6
  27. package/lib/commonjs/index.js.map +1 -1
  28. package/lib/commonjs/types.js.map +1 -1
  29. package/lib/commonjs/useAnimatedValue.js +0 -7
  30. package/lib/commonjs/useAnimatedValue.js.map +1 -1
  31. package/lib/module/Pager.android.js.map +1 -1
  32. package/lib/module/Pager.ios.js.map +1 -1
  33. package/lib/module/Pager.js.map +1 -1
  34. package/lib/module/PagerViewAdapter.js +0 -14
  35. package/lib/module/PagerViewAdapter.js.map +1 -1
  36. package/lib/module/PanResponderAdapter.js +11 -28
  37. package/lib/module/PanResponderAdapter.js.map +1 -1
  38. package/lib/module/PlatformPressable.js +1 -2
  39. package/lib/module/PlatformPressable.js.map +1 -1
  40. package/lib/module/SceneMap.js.map +1 -1
  41. package/lib/module/SceneView.js +4 -9
  42. package/lib/module/SceneView.js.map +1 -1
  43. package/lib/module/TabBar.js +24 -48
  44. package/lib/module/TabBar.js.map +1 -1
  45. package/lib/module/TabBarIndicator.js +7 -10
  46. package/lib/module/TabBarIndicator.js.map +1 -1
  47. package/lib/module/TabBarItem.js +7 -19
  48. package/lib/module/TabBarItem.js.map +1 -1
  49. package/lib/module/TabView.js +9 -9
  50. package/lib/module/TabView.js.map +1 -1
  51. package/lib/module/index.js.map +1 -1
  52. package/lib/module/types.js.map +1 -1
  53. package/lib/module/useAnimatedValue.js +0 -2
  54. package/lib/module/useAnimatedValue.js.map +1 -1
  55. package/lib/typescript/src/Pager.android.d.ts +1 -0
  56. package/lib/typescript/src/Pager.android.d.ts.map +1 -0
  57. package/lib/typescript/src/Pager.d.ts +1 -0
  58. package/lib/typescript/src/Pager.d.ts.map +1 -0
  59. package/lib/typescript/src/Pager.ios.d.ts +1 -0
  60. package/lib/typescript/src/Pager.ios.d.ts.map +1 -0
  61. package/lib/typescript/src/PagerViewAdapter.d.ts +1 -0
  62. package/lib/typescript/src/PagerViewAdapter.d.ts.map +1 -0
  63. package/lib/typescript/src/PanResponderAdapter.d.ts +1 -0
  64. package/lib/typescript/src/PanResponderAdapter.d.ts.map +1 -0
  65. package/lib/typescript/src/PlatformPressable.d.ts +1 -0
  66. package/lib/typescript/src/PlatformPressable.d.ts.map +1 -0
  67. package/lib/typescript/src/SceneMap.d.ts +1 -0
  68. package/lib/typescript/src/SceneMap.d.ts.map +1 -0
  69. package/lib/typescript/src/SceneView.d.ts +1 -0
  70. package/lib/typescript/src/SceneView.d.ts.map +1 -0
  71. package/lib/typescript/src/TabBar.d.ts +4 -2
  72. package/lib/typescript/src/TabBar.d.ts.map +1 -0
  73. package/lib/typescript/src/TabBarIndicator.d.ts +1 -0
  74. package/lib/typescript/src/TabBarIndicator.d.ts.map +1 -0
  75. package/lib/typescript/src/TabBarItem.d.ts +3 -1
  76. package/lib/typescript/src/TabBarItem.d.ts.map +1 -0
  77. package/lib/typescript/src/TabView.d.ts +2 -1
  78. package/lib/typescript/src/TabView.d.ts.map +1 -0
  79. package/lib/typescript/src/index.d.ts +1 -0
  80. package/lib/typescript/src/index.d.ts.map +1 -0
  81. package/lib/typescript/src/types.d.ts +1 -0
  82. package/lib/typescript/src/types.d.ts.map +1 -0
  83. package/lib/typescript/src/useAnimatedValue.d.ts +1 -0
  84. package/lib/typescript/src/useAnimatedValue.d.ts.map +1 -0
  85. package/package.json +3 -3
  86. package/src/TabBar.tsx +5 -0
  87. package/src/TabBarItem.tsx +4 -1
  88. package/src/TabView.tsx +2 -0
@@ -1 +1 @@
1
- {"version":3,"names":["SceneView","children","navigationState","lazy","layout","index","lazyPreloadDistance","addEnterListener","style","isLoading","setIsLoading","React","useState","Math","abs","useEffect","handleEnter","value","prevState","unsubscribe","timer","setTimeout","clearTimeout","focused","styles","route","width","StyleSheet","absoluteFill","loading","create","flex","overflow"],"sources":["SceneView.tsx"],"sourcesContent":["import * as React from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport type {\n EventEmitterProps,\n NavigationState,\n Route,\n SceneRendererProps,\n} from './types';\n\ntype Props<T extends Route> = SceneRendererProps &\n EventEmitterProps & {\n navigationState: NavigationState<T>;\n lazy: boolean;\n lazyPreloadDistance: number;\n index: number;\n children: (props: { loading: boolean }) => React.ReactNode;\n style?: StyleProp<ViewStyle>;\n };\n\nexport default function SceneView<T extends Route>({\n children,\n navigationState,\n lazy,\n layout,\n index,\n lazyPreloadDistance,\n addEnterListener,\n style,\n}: Props<T>) {\n const [isLoading, setIsLoading] = React.useState(\n Math.abs(navigationState.index - index) > lazyPreloadDistance\n );\n\n if (\n isLoading &&\n Math.abs(navigationState.index - index) <= lazyPreloadDistance\n ) {\n // Always render the route when it becomes focused\n setIsLoading(false);\n }\n\n React.useEffect(() => {\n const handleEnter = (value: number) => {\n // If we're entering the current route, we need to load it\n if (value === index) {\n setIsLoading((prevState) => {\n if (prevState) {\n return false;\n }\n return prevState;\n });\n }\n };\n\n let unsubscribe: (() => void) | undefined;\n let timer: NodeJS.Timeout;\n\n if (lazy && isLoading) {\n // If lazy mode is enabled, listen to when we enter screens\n unsubscribe = addEnterListener(handleEnter);\n } else if (isLoading) {\n // If lazy mode is not enabled, render the scene with a delay if not loaded already\n // This improves the initial startup time as the scene is no longer blocking\n timer = setTimeout(() => setIsLoading(false), 0);\n }\n\n return () => {\n unsubscribe?.();\n clearTimeout(timer);\n };\n }, [addEnterListener, index, isLoading, lazy]);\n\n const focused = navigationState.index === index;\n\n return (\n <View\n accessibilityElementsHidden={!focused}\n importantForAccessibility={focused ? 'auto' : 'no-hide-descendants'}\n style={[\n styles.route,\n // If we don't have the layout yet, make the focused screen fill the container\n // This avoids delay before we are able to render pages side by side\n layout.width\n ? { width: layout.width }\n : focused\n ? StyleSheet.absoluteFill\n : null,\n style,\n ]}\n >\n {\n // Only render the route only if it's either focused or layout is available\n // When layout is not available, we must not render unfocused routes\n // so that the focused route can fill the screen\n focused || layout.width ? children({ loading: isLoading }) : null\n }\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n route: {\n flex: 1,\n overflow: 'hidden',\n },\n});\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAmBe,SAASA,SAAT,OASF;EAAA,IATsC;IACjDC,QADiD;IAEjDC,eAFiD;IAGjDC,IAHiD;IAIjDC,MAJiD;IAKjDC,KALiD;IAMjDC,mBANiD;IAOjDC,gBAPiD;IAQjDC;EARiD,CAStC;EACX,MAAM,CAACC,SAAD,EAAYC,YAAZ,IAA4BC,KAAK,CAACC,QAAN,CAChCC,IAAI,CAACC,GAAL,CAASZ,eAAe,CAACG,KAAhB,GAAwBA,KAAjC,IAA0CC,mBADV,CAAlC;;EAIA,IACEG,SAAS,IACTI,IAAI,CAACC,GAAL,CAASZ,eAAe,CAACG,KAAhB,GAAwBA,KAAjC,KAA2CC,mBAF7C,EAGE;IACA;IACAI,YAAY,CAAC,KAAD,CAAZ;EACD;;EAEDC,KAAK,CAACI,SAAN,CAAgB,MAAM;IACpB,MAAMC,WAAW,GAAIC,KAAD,IAAmB;MACrC;MACA,IAAIA,KAAK,KAAKZ,KAAd,EAAqB;QACnBK,YAAY,CAAEQ,SAAD,IAAe;UAC1B,IAAIA,SAAJ,EAAe;YACb,OAAO,KAAP;UACD;;UACD,OAAOA,SAAP;QACD,CALW,CAAZ;MAMD;IACF,CAVD;;IAYA,IAAIC,WAAJ;IACA,IAAIC,KAAJ;;IAEA,IAAIjB,IAAI,IAAIM,SAAZ,EAAuB;MACrB;MACAU,WAAW,GAAGZ,gBAAgB,CAACS,WAAD,CAA9B;IACD,CAHD,MAGO,IAAIP,SAAJ,EAAe;MACpB;MACA;MACAW,KAAK,GAAGC,UAAU,CAAC,MAAMX,YAAY,CAAC,KAAD,CAAnB,EAA4B,CAA5B,CAAlB;IACD;;IAED,OAAO,MAAM;MAAA;;MACX,gBAAAS,WAAW,UAAX;MACAG,YAAY,CAACF,KAAD,CAAZ;IACD,CAHD;EAID,CA7BD,EA6BG,CAACb,gBAAD,EAAmBF,KAAnB,EAA0BI,SAA1B,EAAqCN,IAArC,CA7BH;EA+BA,MAAMoB,OAAO,GAAGrB,eAAe,CAACG,KAAhB,KAA0BA,KAA1C;EAEA,oBACE,oBAAC,iBAAD;IACE,2BAA2B,EAAE,CAACkB,OADhC;IAEE,yBAAyB,EAAEA,OAAO,GAAG,MAAH,GAAY,qBAFhD;IAGE,KAAK,EAAE,CACLC,MAAM,CAACC,KADF,EAEL;IACA;IACArB,MAAM,CAACsB,KAAP,GACI;MAAEA,KAAK,EAAEtB,MAAM,CAACsB;IAAhB,CADJ,GAEIH,OAAO,GACPI,uBAAA,CAAWC,YADJ,GAEP,IARC,EASLpB,KATK;EAHT,GAgBI;EACA;EACA;EACAe,OAAO,IAAInB,MAAM,CAACsB,KAAlB,GAA0BzB,QAAQ,CAAC;IAAE4B,OAAO,EAAEpB;EAAX,CAAD,CAAlC,GAA6D,IAnBjE,CADF;AAwBD;;AAED,MAAMe,MAAM,GAAGG,uBAAA,CAAWG,MAAX,CAAkB;EAC/BL,KAAK,EAAE;IACLM,IAAI,EAAE,CADD;IAELC,QAAQ,EAAE;EAFL;AADwB,CAAlB,CAAf"}
1
+ {"version":3,"names":["SceneView","children","navigationState","lazy","layout","index","lazyPreloadDistance","addEnterListener","style","isLoading","setIsLoading","React","useState","Math","abs","useEffect","handleEnter","value","prevState","unsubscribe","timer","setTimeout","clearTimeout","focused","styles","route","width","StyleSheet","absoluteFill","loading","create","flex","overflow"],"sourceRoot":"../../src","sources":["SceneView.tsx"],"mappings":";;;;;;AAAA;AACA;AAAsE;AAAA;AAmBvD,SAASA,SAAS,OASpB;EAAA,IATsC;IACjDC,QAAQ;IACRC,eAAe;IACfC,IAAI;IACJC,MAAM;IACNC,KAAK;IACLC,mBAAmB;IACnBC,gBAAgB;IAChBC;EACQ,CAAC;EACT,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAC9CC,IAAI,CAACC,GAAG,CAACZ,eAAe,CAACG,KAAK,GAAGA,KAAK,CAAC,GAAGC,mBAAmB,CAC9D;EAED,IACEG,SAAS,IACTI,IAAI,CAACC,GAAG,CAACZ,eAAe,CAACG,KAAK,GAAGA,KAAK,CAAC,IAAIC,mBAAmB,EAC9D;IACA;IACAI,YAAY,CAAC,KAAK,CAAC;EACrB;EAEAC,KAAK,CAACI,SAAS,CAAC,MAAM;IACpB,MAAMC,WAAW,GAAIC,KAAa,IAAK;MACrC;MACA,IAAIA,KAAK,KAAKZ,KAAK,EAAE;QACnBK,YAAY,CAAEQ,SAAS,IAAK;UAC1B,IAAIA,SAAS,EAAE;YACb,OAAO,KAAK;UACd;UACA,OAAOA,SAAS;QAClB,CAAC,CAAC;MACJ;IACF,CAAC;IAED,IAAIC,WAAqC;IACzC,IAAIC,KAAqB;IAEzB,IAAIjB,IAAI,IAAIM,SAAS,EAAE;MACrB;MACAU,WAAW,GAAGZ,gBAAgB,CAACS,WAAW,CAAC;IAC7C,CAAC,MAAM,IAAIP,SAAS,EAAE;MACpB;MACA;MACAW,KAAK,GAAGC,UAAU,CAAC,MAAMX,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClD;IAEA,OAAO,MAAM;MAAA;MACX,gBAAAS,WAAW,iDAAX,cAAe;MACfG,YAAY,CAACF,KAAK,CAAC;IACrB,CAAC;EACH,CAAC,EAAE,CAACb,gBAAgB,EAAEF,KAAK,EAAEI,SAAS,EAAEN,IAAI,CAAC,CAAC;EAE9C,MAAMoB,OAAO,GAAGrB,eAAe,CAACG,KAAK,KAAKA,KAAK;EAE/C,oBACE,oBAAC,iBAAI;IACH,2BAA2B,EAAE,CAACkB,OAAQ;IACtC,yBAAyB,EAAEA,OAAO,GAAG,MAAM,GAAG,qBAAsB;IACpE,KAAK,EAAE,CACLC,MAAM,CAACC,KAAK;IACZ;IACA;IACArB,MAAM,CAACsB,KAAK,GACR;MAAEA,KAAK,EAAEtB,MAAM,CAACsB;IAAM,CAAC,GACvBH,OAAO,GACPI,uBAAU,CAACC,YAAY,GACvB,IAAI,EACRpB,KAAK;EACL;EAGA;EACA;EACA;EACAe,OAAO,IAAInB,MAAM,CAACsB,KAAK,GAAGzB,QAAQ,CAAC;IAAE4B,OAAO,EAAEpB;EAAU,CAAC,CAAC,GAAG,IAAI,CAE9D;AAEX;AAEA,MAAMe,MAAM,GAAGG,uBAAU,CAACG,MAAM,CAAC;EAC/BL,KAAK,EAAE;IACLM,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC"}
@@ -4,25 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = TabBar;
7
-
8
7
  var React = _interopRequireWildcard(require("react"));
9
-
10
8
  var _reactNative = require("react-native");
11
-
12
9
  var _useLatestCallback = _interopRequireDefault(require("use-latest-callback"));
13
-
14
10
  var _TabBarIndicator = _interopRequireDefault(require("./TabBarIndicator"));
15
-
16
11
  var _TabBarItem = _interopRequireDefault(require("./TabBarItem"));
17
-
18
12
  var _useAnimatedValue = _interopRequireDefault(require("./useAnimatedValue"));
19
-
20
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
-
24
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
-
26
16
  const Separator = _ref => {
27
17
  let {
28
18
  width
@@ -33,44 +23,32 @@ const Separator = _ref => {
33
23
  }
34
24
  });
35
25
  };
36
-
37
26
  const getFlattenedTabWidth = style => {
38
27
  const tabStyle = _reactNative.StyleSheet.flatten(style);
39
-
40
28
  return tabStyle === null || tabStyle === void 0 ? void 0 : tabStyle.width;
41
29
  };
42
-
43
30
  const getComputedTabWidth = (index, layout, routes, scrollEnabled, tabWidths, flattenedWidth) => {
44
31
  if (flattenedWidth === 'auto') {
45
32
  return tabWidths[routes[index].key] || 0;
46
33
  }
47
-
48
34
  switch (typeof flattenedWidth) {
49
35
  case 'number':
50
36
  return flattenedWidth;
51
-
52
37
  case 'string':
53
38
  if (flattenedWidth.endsWith('%')) {
54
39
  const width = parseFloat(flattenedWidth);
55
-
56
40
  if (Number.isFinite(width)) {
57
41
  return layout.width * (width / 100);
58
42
  }
59
43
  }
60
-
61
44
  }
62
-
63
45
  if (scrollEnabled) {
64
46
  return layout.width / 5 * 2;
65
47
  }
66
-
67
48
  return layout.width / routes.length;
68
49
  };
69
-
70
50
  const getMaxScrollDistance = (tabBarWidth, layoutWidth) => tabBarWidth - layoutWidth;
71
-
72
51
  const getTranslateX = (scrollAmount, maxScrollDistance) => _reactNative.Animated.multiply(_reactNative.Platform.OS === 'android' && _reactNative.I18nManager.isRTL ? _reactNative.Animated.add(maxScrollDistance, _reactNative.Animated.multiply(scrollAmount, -1)) : scrollAmount, _reactNative.I18nManager.isRTL ? 1 : -1);
73
-
74
52
  const getTabBarWidth = _ref2 => {
75
53
  let {
76
54
  navigationState,
@@ -83,9 +61,8 @@ const getTabBarWidth = _ref2 => {
83
61
  const {
84
62
  routes
85
63
  } = navigationState;
86
- return routes.reduce((acc, _, i) => acc + (i > 0 ? gap !== null && gap !== void 0 ? gap : 0 : 0) + getComputedTabWidth(i, layout, routes, scrollEnabled, tabWidths, flattenedTabWidth), 0);
64
+ return routes.reduce((acc, _, i) => acc + (i > 0 ? gap ?? 0 : 0) + getComputedTabWidth(i, layout, routes, scrollEnabled, tabWidths, flattenedTabWidth), 0);
87
65
  };
88
-
89
66
  const normalizeScrollValue = _ref3 => {
90
67
  let {
91
68
  layout,
@@ -106,16 +83,13 @@ const normalizeScrollValue = _ref3 => {
106
83
  });
107
84
  const maxDistance = getMaxScrollDistance(tabBarWidth, layout.width);
108
85
  const scrollValue = Math.max(Math.min(value, maxDistance), 0);
109
-
110
86
  if (_reactNative.Platform.OS === 'android' && _reactNative.I18nManager.isRTL) {
111
87
  // On Android, scroll value is not applied in reverse in RTL
112
88
  // so we need to manually adjust it to apply correct value
113
89
  return maxDistance - scrollValue;
114
90
  }
115
-
116
91
  return scrollValue;
117
92
  };
118
-
119
93
  const getScrollAmount = _ref4 => {
120
94
  let {
121
95
  layout,
@@ -128,10 +102,11 @@ const getScrollAmount = _ref4 => {
128
102
  const centerDistance = Array.from({
129
103
  length: navigationState.index + 1
130
104
  }).reduce((total, _, i) => {
131
- const tabWidth = getComputedTabWidth(i, layout, navigationState.routes, scrollEnabled, tabWidths, flattenedTabWidth); // To get the current index centered we adjust scroll amount by width of indexes
132
- // 0 through (i - 1) and add half the width of current index i
105
+ const tabWidth = getComputedTabWidth(i, layout, navigationState.routes, scrollEnabled, tabWidths, flattenedTabWidth);
133
106
 
134
- return total + (navigationState.index === i ? (tabWidth + (gap !== null && gap !== void 0 ? gap : 0)) / 2 : tabWidth + (gap !== null && gap !== void 0 ? gap : 0));
107
+ // To get the current index centered we adjust scroll amount by width of indexes
108
+ // 0 through (i - 1) and add half the width of current index i
109
+ return total + (navigationState.index === i ? (tabWidth + (gap ?? 0)) / 2 : tabWidth + (gap ?? 0));
135
110
  }, 0);
136
111
  const scrollAmount = centerDistance - layout.width / 2;
137
112
  return normalizeScrollValue({
@@ -144,41 +119,35 @@ const getScrollAmount = _ref4 => {
144
119
  flattenedTabWidth
145
120
  });
146
121
  };
147
-
148
122
  const getLabelTextDefault = _ref5 => {
149
123
  let {
150
124
  route
151
125
  } = _ref5;
152
126
  return route.title;
153
127
  };
154
-
155
128
  const getAccessibleDefault = _ref6 => {
156
129
  let {
157
130
  route
158
131
  } = _ref6;
159
132
  return typeof route.accessible !== 'undefined' ? route.accessible : true;
160
133
  };
161
-
162
134
  const getAccessibilityLabelDefault = _ref7 => {
163
135
  let {
164
136
  route
165
137
  } = _ref7;
166
138
  return typeof route.accessibilityLabel === 'string' ? route.accessibilityLabel : typeof route.title === 'string' ? route.title : undefined;
167
139
  };
168
-
169
140
  const renderIndicatorDefault = props => /*#__PURE__*/React.createElement(_TabBarIndicator.default, props);
170
-
171
141
  const getTestIdDefault = _ref8 => {
172
142
  let {
173
143
  route
174
144
  } = _ref8;
175
145
  return route.testID;
176
- }; // How many items measurements should we update per batch.
177
- // Defaults to 10, since that's whats FlatList is using in initialNumToRender.
178
-
146
+ };
179
147
 
148
+ // How many items measurements should we update per batch.
149
+ // Defaults to 10, since that's whats FlatList is using in initialNumToRender.
180
150
  const MEASURE_PER_BATCH = 10;
181
-
182
151
  function TabBar(_ref9) {
183
152
  let {
184
153
  getLabelText = getLabelTextDefault,
@@ -208,7 +177,8 @@ function TabBar(_ref9) {
208
177
  renderTabBarItem,
209
178
  style,
210
179
  tabStyle,
211
- testID
180
+ testID,
181
+ android_ripple
212
182
  } = _ref9;
213
183
  const [layout, setLayout] = React.useState({
214
184
  width: 0,
@@ -238,21 +208,17 @@ function TabBar(_ref9) {
238
208
  isFirst.current = false;
239
209
  return;
240
210
  }
241
-
242
211
  if (isWidthDynamic && !hasMeasuredTabWidths) {
243
212
  return;
244
213
  }
245
-
246
214
  if (scrollEnabled) {
247
215
  var _flatListRef$current;
248
-
249
216
  (_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 ? void 0 : _flatListRef$current.scrollToOffset({
250
217
  offset: scrollOffset,
251
218
  animated: true
252
219
  });
253
220
  }
254
221
  }, [hasMeasuredTabWidths, isWidthDynamic, scrollEnabled, scrollOffset]);
255
-
256
222
  const handleLayout = e => {
257
223
  const {
258
224
  height,
@@ -263,7 +229,6 @@ function TabBar(_ref9) {
263
229
  height
264
230
  });
265
231
  };
266
-
267
232
  const tabBarWidth = getTabBarWidth({
268
233
  layout,
269
234
  navigationState,
@@ -298,17 +263,20 @@ function TabBar(_ref9) {
298
263
  pressColor: pressColor,
299
264
  pressOpacity: pressOpacity,
300
265
  onLayout: isWidthDynamic ? e => {
301
- measuredTabWidths.current[route.key] = e.nativeEvent.layout.width; // When we have measured widths for all of the tabs, we should updates the state
266
+ measuredTabWidths.current[route.key] = e.nativeEvent.layout.width;
267
+
268
+ // When we have measured widths for all of the tabs, we should updates the state
302
269
  // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
303
270
  // If we have more than 10 routes divide updating tabWidths into multiple batches. Here we update only first batch of 10 items.
304
-
305
271
  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({ ...measuredTabWidths.current
272
+ setTabWidths({
273
+ ...measuredTabWidths.current
307
274
  });
308
275
  } else if (routes.every(r => typeof measuredTabWidths.current[r.key] === 'number')) {
309
276
  // When we have measured widths for all of the tabs, we should updates the state
310
277
  // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
311
- setTabWidths({ ...measuredTabWidths.current
278
+ setTabWidths({
279
+ ...measuredTabWidths.current
312
280
  });
313
281
  }
314
282
  } : undefined,
@@ -321,11 +289,9 @@ function TabBar(_ref9) {
321
289
  }
322
290
  };
323
291
  onTabPress === null || onTabPress === void 0 ? void 0 : onTabPress(event);
324
-
325
292
  if (event.defaultPrevented) {
326
293
  return;
327
294
  }
328
-
329
295
  jumpTo(route.key);
330
296
  },
331
297
  onLongPress: () => onTabLongPress === null || onTabLongPress === void 0 ? void 0 : onTabLongPress({
@@ -334,12 +300,13 @@ function TabBar(_ref9) {
334
300
  labelStyle: labelStyle,
335
301
  style: tabStyle,
336
302
  // Calculate the deafult width for tab for FlatList to work
337
- defaultTabWidth: !isWidthDynamic ? getComputedTabWidth(index, layout, routes, scrollEnabled, tabWidths, getFlattenedTabWidth(tabStyle)) : undefined
303
+ defaultTabWidth: !isWidthDynamic ? getComputedTabWidth(index, layout, routes, scrollEnabled, tabWidths, getFlattenedTabWidth(tabStyle)) : undefined,
304
+ android_ripple
338
305
  };
339
306
  return /*#__PURE__*/React.createElement(React.Fragment, null, gap > 0 && index > 0 ? /*#__PURE__*/React.createElement(Separator, {
340
307
  width: gap
341
308
  }) : null, renderTabBarItem ? renderTabBarItem(props) : /*#__PURE__*/React.createElement(_TabBarItem.default, props));
342
- }, [activeColor, gap, getAccessibilityLabel, getAccessible, getLabelText, getTestID, inactiveColor, isWidthDynamic, jumpTo, labelStyle, layout, navigationState, onTabLongPress, onTabPress, position, pressColor, pressOpacity, renderBadge, renderIcon, renderLabel, renderTabBarItem, routes, scrollEnabled, tabStyle, tabWidths]);
309
+ }, [activeColor, android_ripple, gap, getAccessibilityLabel, getAccessible, getLabelText, getTestID, inactiveColor, isWidthDynamic, jumpTo, labelStyle, layout, navigationState, onTabLongPress, onTabPress, position, pressColor, pressOpacity, renderBadge, renderIcon, renderLabel, renderTabBarItem, routes, scrollEnabled, tabStyle, tabWidths]);
343
310
  const keyExtractor = React.useCallback(item => item.key, []);
344
311
  const contentContainerStyleMemoized = React.useMemo(() => [styles.tabContent, scrollEnabled ? {
345
312
  width: tabBarWidth > separatorsWidth ? tabBarWidth : tabBarWidthPercent
@@ -357,17 +324,15 @@ function TabBar(_ref9) {
357
324
  let {
358
325
  changed
359
326
  } = _ref11;
360
-
361
327
  if (routes.length <= MEASURE_PER_BATCH) {
362
328
  return;
363
- } // Get next vievable item
364
-
365
-
329
+ }
330
+ // Get next vievable item
366
331
  const item = changed[changed.length - 1];
367
332
  const index = (item === null || item === void 0 ? void 0 : item.index) || 0;
368
-
369
333
  if (item.isViewable && (index % 10 === 0 || index === navigationState.index || index === routes.length - 1)) {
370
- setTabWidths({ ...measuredTabWidths.current
334
+ setTabWidths({
335
+ ...measuredTabWidths.current
371
336
  });
372
337
  }
373
338
  });
@@ -420,7 +385,6 @@ function TabBar(_ref9) {
420
385
  testID: testID
421
386
  })));
422
387
  }
423
-
424
388
  const styles = _reactNative.StyleSheet.create({
425
389
  container: {
426
390
  flex: 1
@@ -1 +1 @@
1
- {"version":3,"names":["Separator","width","getFlattenedTabWidth","style","tabStyle","StyleSheet","flatten","getComputedTabWidth","index","layout","routes","scrollEnabled","tabWidths","flattenedWidth","key","endsWith","parseFloat","Number","isFinite","length","getMaxScrollDistance","tabBarWidth","layoutWidth","getTranslateX","scrollAmount","maxScrollDistance","Animated","multiply","Platform","OS","I18nManager","isRTL","add","getTabBarWidth","navigationState","gap","flattenedTabWidth","reduce","acc","_","i","normalizeScrollValue","value","maxDistance","scrollValue","Math","max","min","getScrollAmount","centerDistance","Array","from","total","tabWidth","getLabelTextDefault","route","title","getAccessibleDefault","accessible","getAccessibilityLabelDefault","accessibilityLabel","undefined","renderIndicatorDefault","props","getTestIdDefault","testID","MEASURE_PER_BATCH","TabBar","getLabelText","getAccessible","getAccessibilityLabel","getTestID","renderIndicator","jumpTo","position","activeColor","bounces","contentContainerStyle","inactiveColor","indicatorContainerStyle","indicatorStyle","labelStyle","onTabLongPress","onTabPress","pressColor","pressOpacity","renderBadge","renderIcon","renderLabel","renderTabBarItem","setLayout","React","useState","height","setTabWidths","flatListRef","useRef","isFirst","useAnimatedValue","measuredTabWidths","isWidthDynamic","scrollOffset","hasMeasuredTabWidths","Boolean","slice","every","r","useEffect","current","scrollToOffset","offset","animated","handleLayout","e","nativeEvent","separatorsWidth","separatorPercent","tabBarWidthPercent","translateX","useMemo","renderItem","useCallback","item","onLayout","onPress","event","defaultPrevented","preventDefault","onLongPress","defaultTabWidth","keyExtractor","contentContainerStyleMemoized","styles","tabContent","container","handleScroll","contentOffset","x","useNativeDriver","handleViewableItemsChanged","useLatestCallback","changed","isViewable","tabBar","indicatorContainer","transform","getTabWidth","scroll","create","flex","overflow","select","default","web","backgroundColor","elevation","shadowColor","shadowOpacity","shadowRadius","hairlineWidth","shadowOffset","zIndex","flexDirection","flexWrap","top","left","right","bottom"],"sources":["TabBar.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Animated,\n FlatList,\n I18nManager,\n LayoutChangeEvent,\n ListRenderItemInfo,\n Platform,\n StyleProp,\n StyleSheet,\n TextStyle,\n View,\n ViewStyle,\n ViewToken,\n} from 'react-native';\nimport useLatestCallback from 'use-latest-callback';\n\nimport TabBarIndicator, { Props as IndicatorProps } from './TabBarIndicator';\nimport TabBarItem, { Props as TabBarItemProps } from './TabBarItem';\nimport type {\n Event,\n Layout,\n NavigationState,\n Route,\n Scene,\n SceneRendererProps,\n} from './types';\nimport useAnimatedValue from './useAnimatedValue';\n\nexport type Props<T extends Route> = SceneRendererProps & {\n navigationState: NavigationState<T>;\n scrollEnabled?: boolean;\n bounces?: boolean;\n activeColor?: string;\n inactiveColor?: string;\n pressColor?: string;\n pressOpacity?: number;\n getLabelText?: (scene: Scene<T>) => string | undefined;\n getAccessible?: (scene: Scene<T>) => boolean | undefined;\n getAccessibilityLabel?: (scene: Scene<T>) => string | undefined;\n getTestID?: (scene: Scene<T>) => string | undefined;\n renderLabel?: (\n scene: Scene<T> & {\n focused: boolean;\n color: string;\n }\n ) => React.ReactNode;\n renderIcon?: (\n scene: Scene<T> & {\n focused: boolean;\n color: string;\n }\n ) => React.ReactNode;\n renderBadge?: (scene: Scene<T>) => React.ReactNode;\n renderIndicator?: (props: IndicatorProps<T>) => React.ReactNode;\n renderTabBarItem?: (\n props: TabBarItemProps<T> & { key: string }\n ) => React.ReactElement;\n onTabPress?: (scene: Scene<T> & Event) => void;\n onTabLongPress?: (scene: Scene<T>) => void;\n tabStyle?: StyleProp<ViewStyle>;\n indicatorStyle?: StyleProp<ViewStyle>;\n indicatorContainerStyle?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n contentContainerStyle?: StyleProp<ViewStyle>;\n style?: StyleProp<ViewStyle>;\n gap?: number;\n testID?: string;\n};\n\ntype FlattenedTabWidth = string | number | undefined;\n\nconst Separator = ({ width }: { width: number }) => {\n return <View style={{ width }} />;\n};\n\nconst getFlattenedTabWidth = (style: StyleProp<ViewStyle>) => {\n const tabStyle = StyleSheet.flatten(style);\n\n return tabStyle?.width;\n};\n\nconst getComputedTabWidth = (\n index: number,\n layout: Layout,\n routes: Route[],\n scrollEnabled: boolean | undefined,\n tabWidths: { [key: string]: number },\n flattenedWidth: FlattenedTabWidth\n) => {\n if (flattenedWidth === 'auto') {\n return tabWidths[routes[index].key] || 0;\n }\n\n switch (typeof flattenedWidth) {\n case 'number':\n return flattenedWidth;\n case 'string':\n if (flattenedWidth.endsWith('%')) {\n const width = parseFloat(flattenedWidth);\n if (Number.isFinite(width)) {\n return layout.width * (width / 100);\n }\n }\n }\n\n if (scrollEnabled) {\n return (layout.width / 5) * 2;\n }\n return layout.width / routes.length;\n};\n\nconst getMaxScrollDistance = (tabBarWidth: number, layoutWidth: number) =>\n tabBarWidth - layoutWidth;\n\nconst getTranslateX = (\n scrollAmount: Animated.Value,\n maxScrollDistance: number\n) =>\n Animated.multiply(\n Platform.OS === 'android' && I18nManager.isRTL\n ? Animated.add(maxScrollDistance, Animated.multiply(scrollAmount, -1))\n : scrollAmount,\n I18nManager.isRTL ? 1 : -1\n );\n\nconst getTabBarWidth = <T extends Route>({\n navigationState,\n layout,\n gap,\n scrollEnabled,\n flattenedTabWidth,\n tabWidths,\n}: Pick<Props<T>, 'navigationState' | 'gap' | 'layout' | 'scrollEnabled'> & {\n tabWidths: Record<string, number>;\n flattenedTabWidth: FlattenedTabWidth;\n}) => {\n const { routes } = navigationState;\n\n return routes.reduce<number>(\n (acc, _, i) =>\n acc +\n (i > 0 ? gap ?? 0 : 0) +\n getComputedTabWidth(\n i,\n layout,\n routes,\n scrollEnabled,\n tabWidths,\n flattenedTabWidth\n ),\n 0\n );\n};\n\nconst normalizeScrollValue = <T extends Route>({\n layout,\n navigationState,\n gap,\n scrollEnabled,\n tabWidths,\n value,\n flattenedTabWidth,\n}: Pick<Props<T>, 'layout' | 'navigationState' | 'gap' | 'scrollEnabled'> & {\n tabWidths: Record<string, number>;\n value: number;\n flattenedTabWidth: FlattenedTabWidth;\n}) => {\n const tabBarWidth = getTabBarWidth({\n layout,\n navigationState,\n tabWidths,\n gap,\n scrollEnabled,\n flattenedTabWidth,\n });\n const maxDistance = getMaxScrollDistance(tabBarWidth, layout.width);\n const scrollValue = Math.max(Math.min(value, maxDistance), 0);\n\n if (Platform.OS === 'android' && I18nManager.isRTL) {\n // On Android, scroll value is not applied in reverse in RTL\n // so we need to manually adjust it to apply correct value\n return maxDistance - scrollValue;\n }\n\n return scrollValue;\n};\n\nconst getScrollAmount = <T extends Route>({\n layout,\n navigationState,\n gap,\n scrollEnabled,\n flattenedTabWidth,\n tabWidths,\n}: Pick<Props<T>, 'layout' | 'navigationState' | 'scrollEnabled' | 'gap'> & {\n tabWidths: Record<string, number>;\n flattenedTabWidth: FlattenedTabWidth;\n}) => {\n const centerDistance = Array.from({\n length: navigationState.index + 1,\n }).reduce<number>((total, _, i) => {\n const tabWidth = getComputedTabWidth(\n i,\n layout,\n navigationState.routes,\n scrollEnabled,\n tabWidths,\n flattenedTabWidth\n );\n\n // To get the current index centered we adjust scroll amount by width of indexes\n // 0 through (i - 1) and add half the width of current index i\n return (\n total +\n (navigationState.index === i\n ? (tabWidth + (gap ?? 0)) / 2\n : tabWidth + (gap ?? 0))\n );\n }, 0);\n\n const scrollAmount = centerDistance - layout.width / 2;\n\n return normalizeScrollValue({\n layout,\n navigationState,\n tabWidths,\n value: scrollAmount,\n gap,\n scrollEnabled,\n flattenedTabWidth,\n });\n};\n\nconst getLabelTextDefault = ({ route }: Scene<Route>) => route.title;\n\nconst getAccessibleDefault = ({ route }: Scene<Route>) =>\n typeof route.accessible !== 'undefined' ? route.accessible : true;\n\nconst getAccessibilityLabelDefault = ({ route }: Scene<Route>) =>\n typeof route.accessibilityLabel === 'string'\n ? route.accessibilityLabel\n : typeof route.title === 'string'\n ? route.title\n : undefined;\n\nconst renderIndicatorDefault = (props: IndicatorProps<Route>) => (\n <TabBarIndicator {...props} />\n);\n\nconst getTestIdDefault = ({ route }: Scene<Route>) => route.testID;\n\n// How many items measurements should we update per batch.\n// Defaults to 10, since that's whats FlatList is using in initialNumToRender.\nconst MEASURE_PER_BATCH = 10;\n\nexport default function TabBar<T extends Route>({\n getLabelText = getLabelTextDefault,\n getAccessible = getAccessibleDefault,\n getAccessibilityLabel = getAccessibilityLabelDefault,\n getTestID = getTestIdDefault,\n renderIndicator = renderIndicatorDefault,\n gap = 0,\n scrollEnabled,\n jumpTo,\n navigationState,\n position,\n activeColor,\n bounces,\n contentContainerStyle,\n inactiveColor,\n indicatorContainerStyle,\n indicatorStyle,\n labelStyle,\n onTabLongPress,\n onTabPress,\n pressColor,\n pressOpacity,\n renderBadge,\n renderIcon,\n renderLabel,\n renderTabBarItem,\n style,\n tabStyle,\n testID,\n}: Props<T>) {\n const [layout, setLayout] = React.useState<Layout>({ width: 0, height: 0 });\n const [tabWidths, setTabWidths] = React.useState<Record<string, number>>({});\n const flatListRef = React.useRef<FlatList | null>(null);\n const isFirst = React.useRef(true);\n const scrollAmount = useAnimatedValue(0);\n const measuredTabWidths = React.useRef<Record<string, number>>({});\n\n const { routes } = navigationState;\n const flattenedTabWidth = getFlattenedTabWidth(tabStyle);\n const isWidthDynamic = flattenedTabWidth === 'auto';\n const scrollOffset = getScrollAmount({\n layout,\n navigationState,\n tabWidths,\n gap,\n scrollEnabled,\n flattenedTabWidth,\n });\n\n const hasMeasuredTabWidths =\n Boolean(layout.width) &&\n routes\n .slice(0, navigationState.index)\n .every((r) => typeof tabWidths[r.key] === 'number');\n\n React.useEffect(() => {\n if (isFirst.current) {\n isFirst.current = false;\n return;\n }\n\n if (isWidthDynamic && !hasMeasuredTabWidths) {\n return;\n }\n\n if (scrollEnabled) {\n flatListRef.current?.scrollToOffset({\n offset: scrollOffset,\n animated: true,\n });\n }\n }, [hasMeasuredTabWidths, isWidthDynamic, scrollEnabled, scrollOffset]);\n\n const handleLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n setLayout((layout) =>\n layout.width === width && layout.height === height\n ? layout\n : { width, height }\n );\n };\n\n const tabBarWidth = getTabBarWidth({\n layout,\n navigationState,\n tabWidths,\n gap,\n scrollEnabled,\n flattenedTabWidth,\n });\n\n const separatorsWidth = Math.max(0, routes.length - 1) * gap;\n const separatorPercent = (separatorsWidth / tabBarWidth) * 100;\n const tabBarWidthPercent = `${routes.length * 40}%`;\n\n const translateX = React.useMemo(\n () =>\n getTranslateX(\n scrollAmount,\n getMaxScrollDistance(tabBarWidth, layout.width)\n ),\n [layout.width, scrollAmount, tabBarWidth]\n );\n\n const renderItem = React.useCallback(\n ({ item: route, index }: ListRenderItemInfo<T>) => {\n const props: TabBarItemProps<T> & { key: string } = {\n key: route.key,\n position: position,\n route: route,\n navigationState: navigationState,\n getAccessibilityLabel: getAccessibilityLabel,\n getAccessible: getAccessible,\n getLabelText: getLabelText,\n getTestID: getTestID,\n renderBadge: renderBadge,\n renderIcon: renderIcon,\n renderLabel: renderLabel,\n activeColor: activeColor,\n inactiveColor: inactiveColor,\n pressColor: pressColor,\n pressOpacity: pressOpacity,\n onLayout: isWidthDynamic\n ? (e: LayoutChangeEvent) => {\n measuredTabWidths.current[route.key] = e.nativeEvent.layout.width;\n\n // When we have measured widths for all of the tabs, we should updates the state\n // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app\n // If we have more than 10 routes divide updating tabWidths into multiple batches. Here we update only first batch of 10 items.\n if (\n routes.length > MEASURE_PER_BATCH &&\n index === MEASURE_PER_BATCH &&\n routes\n .slice(0, MEASURE_PER_BATCH)\n .every(\n (r) => typeof measuredTabWidths.current[r.key] === 'number'\n )\n ) {\n setTabWidths({ ...measuredTabWidths.current });\n } else if (\n routes.every(\n (r) => typeof measuredTabWidths.current[r.key] === 'number'\n )\n ) {\n // When we have measured widths for all of the tabs, we should updates the state\n // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app\n setTabWidths({ ...measuredTabWidths.current });\n }\n }\n : undefined,\n onPress: () => {\n const event: Scene<T> & Event = {\n route,\n defaultPrevented: false,\n preventDefault: () => {\n event.defaultPrevented = true;\n },\n };\n\n onTabPress?.(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\n jumpTo(route.key);\n },\n onLongPress: () => onTabLongPress?.({ route }),\n labelStyle: labelStyle,\n style: tabStyle,\n // Calculate the deafult width for tab for FlatList to work\n defaultTabWidth: !isWidthDynamic\n ? getComputedTabWidth(\n index,\n layout,\n routes,\n scrollEnabled,\n tabWidths,\n getFlattenedTabWidth(tabStyle)\n )\n : undefined,\n };\n\n return (\n <>\n {gap > 0 && index > 0 ? <Separator width={gap} /> : null}\n {renderTabBarItem ? (\n renderTabBarItem(props)\n ) : (\n <TabBarItem {...props} />\n )}\n </>\n );\n },\n [\n activeColor,\n gap,\n getAccessibilityLabel,\n getAccessible,\n getLabelText,\n getTestID,\n inactiveColor,\n isWidthDynamic,\n jumpTo,\n labelStyle,\n layout,\n navigationState,\n onTabLongPress,\n onTabPress,\n position,\n pressColor,\n pressOpacity,\n renderBadge,\n renderIcon,\n renderLabel,\n renderTabBarItem,\n routes,\n scrollEnabled,\n tabStyle,\n tabWidths,\n ]\n );\n\n const keyExtractor = React.useCallback((item: T) => item.key, []);\n\n const contentContainerStyleMemoized = React.useMemo(\n () => [\n styles.tabContent,\n scrollEnabled\n ? {\n width:\n tabBarWidth > separatorsWidth ? tabBarWidth : tabBarWidthPercent,\n }\n : styles.container,\n contentContainerStyle,\n ],\n [\n contentContainerStyle,\n scrollEnabled,\n separatorsWidth,\n tabBarWidth,\n tabBarWidthPercent,\n ]\n );\n\n const handleScroll = React.useMemo(\n () =>\n Animated.event(\n [\n {\n nativeEvent: {\n contentOffset: { x: scrollAmount },\n },\n },\n ],\n { useNativeDriver: true }\n ),\n [scrollAmount]\n );\n\n const handleViewableItemsChanged = useLatestCallback(\n ({ changed }: { changed: ViewToken[] }) => {\n if (routes.length <= MEASURE_PER_BATCH) {\n return;\n }\n // Get next vievable item\n const item = changed[changed.length - 1];\n const index = item?.index || 0;\n if (\n item.isViewable &&\n (index % 10 === 0 ||\n index === navigationState.index ||\n index === routes.length - 1)\n ) {\n setTabWidths({ ...measuredTabWidths.current });\n }\n }\n );\n\n return (\n <Animated.View onLayout={handleLayout} style={[styles.tabBar, style]}>\n <Animated.View\n pointerEvents=\"none\"\n style={[\n styles.indicatorContainer,\n scrollEnabled ? { transform: [{ translateX }] as any } : null,\n tabBarWidth > separatorsWidth\n ? { width: tabBarWidth - separatorsWidth }\n : scrollEnabled\n ? { width: tabBarWidthPercent }\n : null,\n indicatorContainerStyle,\n ]}\n >\n {renderIndicator({\n position,\n layout,\n navigationState,\n jumpTo,\n width: isWidthDynamic\n ? 'auto'\n : `${(100 - separatorPercent) / routes.length}%`,\n style: indicatorStyle,\n getTabWidth: (i: number) =>\n getComputedTabWidth(\n i,\n layout,\n routes,\n scrollEnabled,\n tabWidths,\n flattenedTabWidth\n ),\n gap,\n })}\n </Animated.View>\n <View style={styles.scroll}>\n <Animated.FlatList\n data={routes as Animated.WithAnimatedValue<T>[]}\n keyExtractor={keyExtractor}\n horizontal\n accessibilityRole=\"tablist\"\n keyboardShouldPersistTaps=\"handled\"\n scrollEnabled={scrollEnabled}\n bounces={bounces}\n initialNumToRender={MEASURE_PER_BATCH}\n onViewableItemsChanged={handleViewableItemsChanged}\n alwaysBounceHorizontal={false}\n scrollsToTop={false}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n automaticallyAdjustContentInsets={false}\n overScrollMode=\"never\"\n contentContainerStyle={contentContainerStyleMemoized}\n scrollEventThrottle={16}\n renderItem={renderItem}\n onScroll={handleScroll}\n ref={flatListRef}\n testID={testID}\n />\n </View>\n </Animated.View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n scroll: {\n overflow: Platform.select({ default: 'scroll', web: undefined }),\n },\n tabBar: {\n backgroundColor: '#2196f3',\n elevation: 4,\n shadowColor: 'black',\n shadowOpacity: 0.1,\n shadowRadius: StyleSheet.hairlineWidth,\n shadowOffset: {\n height: StyleSheet.hairlineWidth,\n width: 0,\n },\n zIndex: 1,\n },\n tabContent: {\n flexDirection: 'row',\n flexWrap: 'nowrap',\n },\n indicatorContainer: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["Separator","width","getFlattenedTabWidth","style","tabStyle","StyleSheet","flatten","getComputedTabWidth","index","layout","routes","scrollEnabled","tabWidths","flattenedWidth","key","endsWith","parseFloat","Number","isFinite","length","getMaxScrollDistance","tabBarWidth","layoutWidth","getTranslateX","scrollAmount","maxScrollDistance","Animated","multiply","Platform","OS","I18nManager","isRTL","add","getTabBarWidth","navigationState","gap","flattenedTabWidth","reduce","acc","_","i","normalizeScrollValue","value","maxDistance","scrollValue","Math","max","min","getScrollAmount","centerDistance","Array","from","total","tabWidth","getLabelTextDefault","route","title","getAccessibleDefault","accessible","getAccessibilityLabelDefault","accessibilityLabel","undefined","renderIndicatorDefault","props","getTestIdDefault","testID","MEASURE_PER_BATCH","TabBar","getLabelText","getAccessible","getAccessibilityLabel","getTestID","renderIndicator","jumpTo","position","activeColor","bounces","contentContainerStyle","inactiveColor","indicatorContainerStyle","indicatorStyle","labelStyle","onTabLongPress","onTabPress","pressColor","pressOpacity","renderBadge","renderIcon","renderLabel","renderTabBarItem","android_ripple","setLayout","React","useState","height","setTabWidths","flatListRef","useRef","isFirst","useAnimatedValue","measuredTabWidths","isWidthDynamic","scrollOffset","hasMeasuredTabWidths","Boolean","slice","every","r","useEffect","current","scrollToOffset","offset","animated","handleLayout","e","nativeEvent","separatorsWidth","separatorPercent","tabBarWidthPercent","translateX","useMemo","renderItem","useCallback","item","onLayout","onPress","event","defaultPrevented","preventDefault","onLongPress","defaultTabWidth","keyExtractor","contentContainerStyleMemoized","styles","tabContent","container","handleScroll","contentOffset","x","useNativeDriver","handleViewableItemsChanged","useLatestCallback","changed","isViewable","tabBar","indicatorContainer","transform","getTabWidth","scroll","create","flex","overflow","select","default","web","backgroundColor","elevation","shadowColor","shadowOpacity","shadowRadius","hairlineWidth","shadowOffset","zIndex","flexDirection","flexWrap","top","left","right","bottom"],"sourceRoot":"../../src","sources":["TabBar.tsx"],"mappings":"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"}
@@ -4,25 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = TabBarIndicator;
7
-
8
7
  var React = _interopRequireWildcard(require("react"));
9
-
10
8
  var _reactNative = require("react-native");
11
-
12
9
  var _useAnimatedValue = _interopRequireDefault(require("./useAnimatedValue"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
11
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
-
18
12
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
-
20
13
  const getTranslateX = (position, routes, getTabWidth, gap) => {
21
- const inputRange = routes.map((_, i) => i); // every index contains widths at all previous indices
14
+ const inputRange = routes.map((_, i) => i);
22
15
 
16
+ // every index contains widths at all previous indices
23
17
  const outputRange = routes.reduce((acc, _, i) => {
24
18
  if (i === 0) return [0];
25
- return [...acc, acc[i - 1] + getTabWidth(i - 1) + (gap !== null && gap !== void 0 ? gap : 0)];
19
+ return [...acc, acc[i - 1] + getTabWidth(i - 1) + (gap ?? 0)];
26
20
  }, []);
27
21
  const translateX = position.interpolate({
28
22
  inputRange,
@@ -31,7 +25,6 @@ const getTranslateX = (position, routes, getTabWidth, gap) => {
31
25
  });
32
26
  return _reactNative.Animated.multiply(translateX, _reactNative.I18nManager.isRTL ? -1 : 1);
33
27
  };
34
-
35
28
  function TabBarIndicator(_ref) {
36
29
  let {
37
30
  getTabWidth,
@@ -48,10 +41,10 @@ function TabBarIndicator(_ref) {
48
41
  const indicatorVisible = isWidthDynamic ? layout.width && navigationState.routes.slice(0, navigationState.index).every((_, r) => getTabWidth(r)) : true;
49
42
  React.useEffect(() => {
50
43
  const fadeInIndicator = () => {
51
- if (!isIndicatorShown.current && isWidthDynamic && // We should fade-in the indicator when we have widths for all the tab items
44
+ if (!isIndicatorShown.current && isWidthDynamic &&
45
+ // We should fade-in the indicator when we have widths for all the tab items
52
46
  indicatorVisible) {
53
47
  isIndicatorShown.current = true;
54
-
55
48
  _reactNative.Animated.timing(opacity, {
56
49
  toValue: 1,
57
50
  duration: 150,
@@ -60,7 +53,6 @@ function TabBarIndicator(_ref) {
60
53
  }).start();
61
54
  }
62
55
  };
63
-
64
56
  fadeInIndicator();
65
57
  return () => opacity.stopAnimation();
66
58
  }, [indicatorVisible, isWidthDynamic, opacity]);
@@ -68,14 +60,12 @@ function TabBarIndicator(_ref) {
68
60
  routes
69
61
  } = navigationState;
70
62
  const transform = [];
71
-
72
63
  if (layout.width) {
73
64
  const translateX = routes.length > 1 ? getTranslateX(position, routes, getTabWidth, gap) : 0;
74
65
  transform.push({
75
66
  translateX
76
67
  });
77
68
  }
78
-
79
69
  if (width === 'auto') {
80
70
  const inputRange = routes.map((_, i) => i);
81
71
  const outputRange = inputRange.map(getTabWidth);
@@ -89,11 +79,11 @@ function TabBarIndicator(_ref) {
89
79
  translateX: 0.5
90
80
  });
91
81
  }
92
-
93
82
  return /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
94
83
  style: [styles.indicator, {
95
84
  width: width === 'auto' ? 1 : width
96
- }, // If layout is not available, use `left` property for positioning the indicator
85
+ },
86
+ // If layout is not available, use `left` property for positioning the indicator
97
87
  // This avoids rendering delay until we are able to calculate translateX
98
88
  // If platform is macos use `left` property as `transform` is broken at the moment.
99
89
  // See: https://github.com/microsoft/react-native-macos/issues/280
@@ -108,7 +98,6 @@ function TabBarIndicator(_ref) {
108
98
  } : null, style]
109
99
  });
110
100
  }
111
-
112
101
  const styles = _reactNative.StyleSheet.create({
113
102
  indicator: {
114
103
  backgroundColor: '#ffeb3b',
@@ -1 +1 @@
1
- {"version":3,"names":["getTranslateX","position","routes","getTabWidth","gap","inputRange","map","_","i","outputRange","reduce","acc","translateX","interpolate","extrapolate","Animated","multiply","I18nManager","isRTL","TabBarIndicator","layout","navigationState","width","style","isIndicatorShown","React","useRef","isWidthDynamic","opacity","useAnimatedValue","indicatorVisible","slice","index","every","r","useEffect","fadeInIndicator","current","timing","toValue","duration","easing","Easing","in","linear","useNativeDriver","start","stopAnimation","transform","length","push","scaleX","styles","indicator","Platform","OS","left","StyleSheet","create","backgroundColor","bottom","right","height"],"sources":["TabBarIndicator.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Animated,\n Easing,\n I18nManager,\n Platform,\n StyleProp,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport type { NavigationState, Route, SceneRendererProps } from './types';\nimport useAnimatedValue from './useAnimatedValue';\n\nexport type GetTabWidth = (index: number) => number;\n\nexport type Props<T extends Route> = SceneRendererProps & {\n navigationState: NavigationState<T>;\n width: string | number;\n style?: StyleProp<ViewStyle>;\n getTabWidth: GetTabWidth;\n gap?: number;\n};\n\nconst getTranslateX = (\n position: Animated.AnimatedInterpolation,\n routes: Route[],\n getTabWidth: GetTabWidth,\n gap?: number\n) => {\n const inputRange = routes.map((_, i) => i);\n\n // every index contains widths at all previous indices\n const outputRange = routes.reduce<number[]>((acc, _, i) => {\n if (i === 0) return [0];\n return [...acc, acc[i - 1] + getTabWidth(i - 1) + (gap ?? 0)];\n }, []);\n\n const translateX = position.interpolate({\n inputRange,\n outputRange,\n extrapolate: 'clamp',\n });\n\n return Animated.multiply(translateX, I18nManager.isRTL ? -1 : 1);\n};\n\nexport default function TabBarIndicator<T extends Route>({\n getTabWidth,\n layout,\n navigationState,\n position,\n width,\n gap,\n style,\n}: Props<T>) {\n const isIndicatorShown = React.useRef(false);\n const isWidthDynamic = width === 'auto';\n\n const opacity = useAnimatedValue(isWidthDynamic ? 0 : 1);\n\n const indicatorVisible = isWidthDynamic\n ? layout.width &&\n navigationState.routes\n .slice(0, navigationState.index)\n .every((_, r) => getTabWidth(r))\n : true;\n\n React.useEffect(() => {\n const fadeInIndicator = () => {\n if (\n !isIndicatorShown.current &&\n isWidthDynamic &&\n // We should fade-in the indicator when we have widths for all the tab items\n indicatorVisible\n ) {\n isIndicatorShown.current = true;\n\n Animated.timing(opacity, {\n toValue: 1,\n duration: 150,\n easing: Easing.in(Easing.linear),\n useNativeDriver: true,\n }).start();\n }\n };\n\n fadeInIndicator();\n\n return () => opacity.stopAnimation();\n }, [indicatorVisible, isWidthDynamic, opacity]);\n\n const { routes } = navigationState;\n\n const transform = [];\n\n if (layout.width) {\n const translateX =\n routes.length > 1 ? getTranslateX(position, routes, getTabWidth, gap) : 0;\n\n transform.push({ translateX });\n }\n\n if (width === 'auto') {\n const inputRange = routes.map((_, i) => i);\n const outputRange = inputRange.map(getTabWidth);\n\n transform.push(\n {\n scaleX:\n routes.length > 1\n ? position.interpolate({\n inputRange,\n outputRange,\n extrapolate: 'clamp',\n })\n : outputRange[0],\n },\n { translateX: 0.5 }\n );\n }\n\n return (\n <Animated.View\n style={[\n styles.indicator,\n { width: width === 'auto' ? 1 : width },\n // If layout is not available, use `left` property for positioning the indicator\n // This avoids rendering delay until we are able to calculate translateX\n // If platform is macos use `left` property as `transform` is broken at the moment.\n // See: https://github.com/microsoft/react-native-macos/issues/280\n layout.width && Platform.OS !== 'macos'\n ? { left: 0 }\n : { left: `${(100 / routes.length) * navigationState.index}%` },\n { transform },\n width === 'auto' ? { opacity: opacity } : null,\n style,\n ]}\n />\n );\n}\n\nconst styles = StyleSheet.create({\n indicator: {\n backgroundColor: '#ffeb3b',\n position: 'absolute',\n left: 0,\n bottom: 0,\n right: 0,\n height: 2,\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["getTranslateX","position","routes","getTabWidth","gap","inputRange","map","_","i","outputRange","reduce","acc","translateX","interpolate","extrapolate","Animated","multiply","I18nManager","isRTL","TabBarIndicator","layout","navigationState","width","style","isIndicatorShown","React","useRef","isWidthDynamic","opacity","useAnimatedValue","indicatorVisible","slice","index","every","r","useEffect","fadeInIndicator","current","timing","toValue","duration","easing","Easing","in","linear","useNativeDriver","start","stopAnimation","transform","length","push","scaleX","styles","indicator","Platform","OS","left","StyleSheet","create","backgroundColor","bottom","right","height"],"sourceRoot":"../../src","sources":["TabBarIndicator.tsx"],"mappings":"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"}