@hero-design/rn 7.1.3-alpha7 → 7.2.1

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 (97) hide show
  1. package/.turbo/turbo-build.log +8 -0
  2. package/.turbo/turbo-publish:npm.log +0 -0
  3. package/es/index.js +148 -94
  4. package/lib/index.js +148 -94
  5. package/package.json +2 -38
  6. package/playground/components/BottomNavigation.tsx +1 -1
  7. package/playground/components/Card.tsx +1 -1
  8. package/playground/components/Tabs.tsx +1 -1
  9. package/playground/index.tsx +39 -31
  10. package/src/components/BottomNavigation/__tests__/__snapshots__/index.spec.tsx.snap +0 -1
  11. package/src/components/BottomNavigation/__tests__/index.spec.tsx +2 -2
  12. package/src/components/BottomNavigation/index.tsx +6 -10
  13. package/src/components/FAB/ActionGroup/index.tsx +1 -2
  14. package/src/components/Tabs/__tests__/__snapshots__/index.spec.tsx.snap +0 -1
  15. package/src/components/Tabs/__tests__/index.spec.tsx +2 -2
  16. package/src/components/Tabs/index.tsx +19 -15
  17. package/src/theme/global/borders.ts +8 -2
  18. package/src/theme/global/colors.ts +4 -2
  19. package/src/theme/global/index.ts +31 -17
  20. package/src/theme/global/scale.ts +18 -0
  21. package/src/theme/global/space.ts +23 -13
  22. package/src/theme/global/typography.ts +71 -27
  23. package/src/theme/index.ts +27 -14
  24. package/types/playground/components/Badge.d.ts +0 -0
  25. package/types/playground/components/BottomNavigation.d.ts +0 -0
  26. package/types/playground/components/Button.d.ts +0 -0
  27. package/types/playground/components/Card.d.ts +0 -0
  28. package/types/playground/components/Divider.d.ts +0 -0
  29. package/types/playground/components/FAB.d.ts +0 -0
  30. package/types/playground/components/Icon.d.ts +0 -0
  31. package/types/playground/components/Tabs.d.ts +0 -0
  32. package/types/playground/components/Typography.d.ts +0 -0
  33. package/types/playground/index.d.ts +0 -0
  34. package/types/src/components/Badge/StyledBadge.d.ts +0 -0
  35. package/types/src/components/Badge/__tests__/Badge.spec.d.ts +0 -0
  36. package/types/src/components/Badge/index.d.ts +0 -0
  37. package/types/src/components/BottomNavigation/StyledBottomNavigation.d.ts +0 -0
  38. package/types/src/components/BottomNavigation/__tests__/index.spec.d.ts +0 -0
  39. package/types/src/components/BottomNavigation/index.d.ts +3 -3
  40. package/types/src/components/Button/IconButton.d.ts +0 -0
  41. package/types/src/components/Button/__tests__/index.spec.d.ts +0 -0
  42. package/types/src/components/Button/index.d.ts +0 -0
  43. package/types/src/components/Card/StyledCard.d.ts +0 -0
  44. package/types/src/components/Card/__tests__/StyledCard.spec.d.ts +0 -0
  45. package/types/src/components/Card/__tests__/index.spec.d.ts +0 -0
  46. package/types/src/components/Card/index.d.ts +0 -0
  47. package/types/src/components/Divider/StyledDivider.d.ts +0 -0
  48. package/types/src/components/Divider/__tests__/StyledDivider.spec.d.ts +0 -0
  49. package/types/src/components/Divider/index.d.ts +0 -0
  50. package/types/src/components/FAB/ActionGroup/ActionItem.d.ts +0 -0
  51. package/types/src/components/FAB/ActionGroup/StyledActionGroup.d.ts +0 -0
  52. package/types/src/components/FAB/ActionGroup/StyledActionItem.d.ts +0 -0
  53. package/types/src/components/FAB/ActionGroup/__tests__/index.spec.d.ts +0 -0
  54. package/types/src/components/FAB/ActionGroup/index.d.ts +3 -0
  55. package/types/src/components/FAB/AnimatedFABIcon.d.ts +0 -0
  56. package/types/src/components/FAB/FAB.d.ts +0 -0
  57. package/types/src/components/FAB/StyledFAB.d.ts +0 -0
  58. package/types/src/components/FAB/__tests__/AnimatedFABIcon.spec.d.ts +0 -0
  59. package/types/src/components/FAB/__tests__/StyledFAB.spec.d.ts +0 -0
  60. package/types/src/components/FAB/__tests__/index.spec.d.ts +0 -0
  61. package/types/src/components/FAB/index.d.ts +0 -0
  62. package/types/src/components/Icon/HeroIcon/index.d.ts +0 -0
  63. package/types/src/components/Icon/IconList.d.ts +0 -0
  64. package/types/src/components/Icon/__tests__/index.spec.d.ts +0 -0
  65. package/types/src/components/Icon/index.d.ts +0 -0
  66. package/types/src/components/Icon/utils.d.ts +0 -0
  67. package/types/src/components/Tabs/StyledTabs.d.ts +0 -0
  68. package/types/src/components/Tabs/__tests__/index.spec.d.ts +0 -0
  69. package/types/src/components/Tabs/index.d.ts +3 -3
  70. package/types/src/components/Typography/Text/StyledText.d.ts +0 -0
  71. package/types/src/components/Typography/Text/__tests__/StyledText.spec.d.ts +0 -0
  72. package/types/src/components/Typography/Text/__tests__/index.spec.d.ts +0 -0
  73. package/types/src/components/Typography/Text/index.d.ts +0 -0
  74. package/types/src/components/Typography/index.d.ts +0 -0
  75. package/types/src/index.d.ts +0 -0
  76. package/types/src/testHelpers/renderWithTheme.d.ts +0 -0
  77. package/types/src/theme/__tests__/index.spec.d.ts +0 -0
  78. package/types/src/theme/components/badge.d.ts +0 -0
  79. package/types/src/theme/components/bottomNavigation.d.ts +0 -0
  80. package/types/src/theme/components/card.d.ts +0 -0
  81. package/types/src/theme/components/divider.d.ts +0 -0
  82. package/types/src/theme/components/fab.d.ts +0 -0
  83. package/types/src/theme/components/icon.d.ts +0 -0
  84. package/types/src/theme/components/tabs.d.ts +0 -0
  85. package/types/src/theme/components/typography.d.ts +0 -0
  86. package/types/src/theme/global/borders.d.ts +4 -3
  87. package/types/src/theme/global/colors.d.ts +2 -2
  88. package/types/src/theme/global/index.d.ts +10 -45
  89. package/types/src/theme/global/scale.d.ts +8 -0
  90. package/types/src/theme/global/space.d.ts +8 -7
  91. package/types/src/theme/global/typography.d.ts +9 -16
  92. package/types/src/theme/index.d.ts +2 -2
  93. package/types/src/types.d.ts +0 -0
  94. package/types/src/utils/__tests__/scale.spec.d.ts +0 -0
  95. package/types/src/utils/helpers.d.ts +0 -0
  96. package/types/src/utils/scale.d.ts +0 -0
  97. package/yarn-error.log +0 -140
@@ -0,0 +1,8 @@
1
+ @hero-design/rn:build: cache hit, replaying output 838d0cbb27d952b0
2
+ @hero-design/rn:build: $ yarn build:js && yarn build:types
3
+ @hero-design/rn:build: $ rollup -c
4
+ @hero-design/rn:build: 
5
+ @hero-design/rn:build: src/index.ts → lib/index.js, es/index.js...
6
+ @hero-design/rn:build: (!) Plugin replace: @rollup/plugin-replace: 'preventAssignment' currently defaults to false. It is recommended to set this option to `true`, as the next major version will default this option to `true`.
7
+ @hero-design/rn:build: created lib/index.js, es/index.js in 12.8s
8
+ @hero-design/rn:build: $ tsc --noEmit false --emitDeclarationOnly
File without changes
package/es/index.js CHANGED
@@ -1187,6 +1187,21 @@ function prefixer(element, index, children, callback) {
1187
1187
  }
1188
1188
  }
1189
1189
 
1190
+ var weakMemoize = function weakMemoize(func) {
1191
+ // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps
1192
+ var cache = new WeakMap();
1193
+ return function (arg) {
1194
+ if (cache.has(arg)) {
1195
+ // $FlowFixMe
1196
+ return cache.get(arg);
1197
+ }
1198
+
1199
+ var ret = func(arg);
1200
+ cache.set(arg, ret);
1201
+ return ret;
1202
+ };
1203
+ };
1204
+
1190
1205
  var identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {
1191
1206
  var previous = 0;
1192
1207
  var character = 0;
@@ -1424,21 +1439,6 @@ function _extends$1() {
1424
1439
  return _extends$1.apply(this, arguments);
1425
1440
  }
1426
1441
 
1427
- var weakMemoize = function weakMemoize(func) {
1428
- // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps
1429
- var cache = new WeakMap();
1430
- return function (arg) {
1431
- if (cache.has(arg)) {
1432
- // $FlowFixMe
1433
- return cache.get(arg);
1434
- }
1435
-
1436
- var ret = func(arg);
1437
- cache.set(arg, ret);
1438
- return ret;
1439
- };
1440
- };
1441
-
1442
1442
  var EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case
1443
1443
  // because this module is primarily intended for the browser and node
1444
1444
  // but it's also required in react native and similar environments sometimes
@@ -1485,6 +1485,17 @@ var ThemeProvider = function ThemeProvider(props) {
1485
1485
  }, props.children);
1486
1486
  };
1487
1487
 
1488
+ var BASE_BORDER_WIDTH = 1;
1489
+ var BASE_SPACE = 8;
1490
+ var BASE_FONT = 'BeVietnamPro';
1491
+ var BASE_FONT_SIZE = 10;
1492
+ var scale$1 = {
1493
+ borderWidth: BASE_BORDER_WIDTH,
1494
+ space: BASE_SPACE,
1495
+ font: BASE_FONT,
1496
+ fontSize: BASE_FONT_SIZE
1497
+ };
1498
+
1488
1499
  var palette = {
1489
1500
  black: '#000000',
1490
1501
  blue: '#1dbeee',
@@ -1552,6 +1563,7 @@ var palette = {
1552
1563
  smaltDark75: '#000d20',
1553
1564
  smaltLight30: '#4d72a6',
1554
1565
  smaltLight45: '#7390b9',
1566
+ smaltLight75: '#bfcddf',
1555
1567
  smaltLight90: '#e6ebf2',
1556
1568
  violet: '#7622d7',
1557
1569
  violetDark15: '#641db7',
@@ -1610,60 +1622,94 @@ var scale = function scale(size) {
1610
1622
  return size + (horizontalScale(size) - size) * factor;
1611
1623
  };
1612
1624
 
1613
- var BASE$1 = 8;
1614
- var space = {
1615
- xxsmall: scale(BASE$1 * 0.25),
1616
- xsmall: scale(BASE$1 * 0.5),
1617
- small: scale(BASE$1),
1618
- medium: scale(BASE$1 * 2),
1619
- large: scale(BASE$1 * 3),
1620
- xlarge: scale(BASE$1 * 4),
1621
- xxlarge: scale(BASE$1 * 5),
1622
- xxxlarge: scale(BASE$1 * 6),
1623
- xxxxlarge: scale(BASE$1 * 7)
1625
+ // https://www.ibm.com/design/language/typography/type-specs-ui#scales
1626
+
1627
+ var genFontSize = function genFontSize(prev, at) {
1628
+ return prev + Math.floor(Math.abs((at - 2) / 4) + 1) * 2;
1629
+ };
1630
+
1631
+ var getFonts = function getFonts(baseFont) {
1632
+ return {
1633
+ light: "".concat(baseFont, "-Light"),
1634
+ regular: "".concat(baseFont, "-Regular"),
1635
+ semiBold: "".concat(baseFont, "-SemiBold")
1636
+ };
1624
1637
  };
1625
1638
 
1626
- var BASE = 16;
1627
- var fonts = {
1628
- light: 'BeVietnamPro-Light',
1629
- regular: 'BeVietnamPro-Regular',
1630
- semiBold: 'BeVietnamPro-SemiBold'
1639
+ var getFontSizes = function getFontSizes(baseFontSize) {
1640
+ var fontSizes = Array.from(new Array(9));
1641
+ fontSizes.forEach(function (_, index) {
1642
+ if (index === 0) {
1643
+ fontSizes[0] = baseFontSize;
1644
+ } else {
1645
+ fontSizes[index] = genFontSize(fontSizes[index - 1], index);
1646
+ }
1647
+
1648
+ return undefined;
1649
+ });
1650
+ return {
1651
+ xxxxxlarge: scale(fontSizes[8]),
1652
+ xxxxlarge: scale(fontSizes[7]),
1653
+ xxxlarge: scale(fontSizes[6]),
1654
+ xxlarge: scale(fontSizes[5]),
1655
+ xlarge: scale(fontSizes[4]),
1656
+ large: scale(fontSizes[3]),
1657
+ medium: scale(fontSizes[2]),
1658
+ small: scale(fontSizes[1]),
1659
+ xsmall: scale(fontSizes[0]) // 10
1660
+
1661
+ };
1631
1662
  };
1632
- var fontSizes = {
1633
- xxxxxlarge: scale(BASE * 2),
1634
- xxxxlarge: scale(BASE * 1.75),
1635
- xxxlarge: scale(BASE * 1.5),
1636
- xxlarge: scale(BASE * 1.25),
1637
- xlarge: scale(BASE * 1.125),
1638
- large: scale(BASE),
1639
- medium: scale(BASE * 0.875),
1640
- small: scale(BASE * 0.75),
1641
- xsmall: scale(BASE * 0.625) // 10
1642
1663
 
1664
+ var getLineHeights = function getLineHeights(fontSizes) {
1665
+ var additionalSpace = 8;
1666
+ return {
1667
+ xxxxxlarge: fontSizes.xxxxxlarge + additionalSpace,
1668
+ xxxxlarge: fontSizes.xxxxlarge + additionalSpace,
1669
+ xxxlarge: fontSizes.xxxlarge + additionalSpace,
1670
+ xxlarge: fontSizes.xxlarge + additionalSpace,
1671
+ xlarge: fontSizes.xlarge + additionalSpace,
1672
+ large: fontSizes.large + additionalSpace,
1673
+ medium: fontSizes.medium + additionalSpace,
1674
+ small: fontSizes.small + additionalSpace,
1675
+ xsmall: fontSizes.xsmall + additionalSpace
1676
+ };
1643
1677
  };
1644
- var lineHeights = {
1645
- xxxxxlarge: fontSizes.xxxxxlarge + 8,
1646
- xxxxlarge: fontSizes.xxxxlarge + 8,
1647
- xxxlarge: fontSizes.xxxlarge + 8,
1648
- xxlarge: fontSizes.xxlarge + 8,
1649
- xlarge: fontSizes.xlarge + 8,
1650
- large: fontSizes.large + 8,
1651
- medium: fontSizes.medium + 8,
1652
- small: fontSizes.small + 8,
1653
- xsmall: fontSizes.xsmall + 8
1678
+
1679
+ var getSpace = function getSpace(baseSpace) {
1680
+ return {
1681
+ xxsmall: scale(baseSpace * 0.25),
1682
+ xsmall: scale(baseSpace * 0.5),
1683
+ small: scale(baseSpace),
1684
+ medium: scale(baseSpace * 2),
1685
+ large: scale(baseSpace * 3),
1686
+ xlarge: scale(baseSpace * 4),
1687
+ xxlarge: scale(baseSpace * 5),
1688
+ xxxlarge: scale(baseSpace * 6),
1689
+ xxxxlarge: scale(baseSpace * 7)
1690
+ };
1654
1691
  };
1655
1692
 
1656
- var borderWidths = {
1657
- base: 1
1693
+ var getBorderWidths = function getBorderWidths(baseBorderWidth) {
1694
+ return {
1695
+ base: baseBorderWidth
1696
+ };
1658
1697
  };
1659
1698
 
1660
- var globalTheme = {
1661
- colors: _objectSpread2({}, systemPalette),
1662
- space: space,
1663
- fonts: fonts,
1664
- fontSizes: fontSizes,
1665
- lineHeights: lineHeights,
1666
- borderWidths: borderWidths
1699
+ var getGlobalTheme = function getGlobalTheme(scale, systemPalette) {
1700
+ var fonts = getFonts(scale.font);
1701
+ var fontSizes = getFontSizes(scale.fontSize);
1702
+ var lineHeights = getLineHeights(fontSizes);
1703
+ var borderWidths = getBorderWidths(scale.borderWidth);
1704
+ var space = getSpace(scale.space);
1705
+ return {
1706
+ colors: _objectSpread2({}, systemPalette),
1707
+ fonts: fonts,
1708
+ fontSizes: fontSizes,
1709
+ lineHeights: lineHeights,
1710
+ borderWidths: borderWidths,
1711
+ space: space
1712
+ };
1667
1713
  };
1668
1714
 
1669
1715
  var getBadgeTheme = function getBadgeTheme(theme) {
@@ -1889,17 +1935,19 @@ var getFABTheme = function getFABTheme(theme) {
1889
1935
  };
1890
1936
 
1891
1937
  var getTheme = function getTheme() {
1892
- var theme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : globalTheme;
1893
- return _objectSpread2(_objectSpread2({}, theme), {}, {
1938
+ var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : scale$1;
1939
+ var systemPallete = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : systemPalette;
1940
+ var globalTheme = getGlobalTheme(scale, systemPallete);
1941
+ return _objectSpread2(_objectSpread2({}, globalTheme), {}, {
1894
1942
  __hd__: {
1895
- badge: getBadgeTheme(theme),
1896
- bottomNavigation: getBottomNavigationTheme(theme),
1897
- card: getCardTheme(theme),
1898
- divider: getDividerTheme(theme),
1899
- icon: getIconTheme(theme),
1900
- tabs: getTabsTheme(theme),
1901
- typography: getTypographyTheme(theme),
1902
- fab: getFABTheme(theme)
1943
+ badge: getBadgeTheme(globalTheme),
1944
+ bottomNavigation: getBottomNavigationTheme(globalTheme),
1945
+ card: getCardTheme(globalTheme),
1946
+ divider: getDividerTheme(globalTheme),
1947
+ icon: getIconTheme(globalTheme),
1948
+ tabs: getTabsTheme(globalTheme),
1949
+ typography: getTypographyTheme(globalTheme),
1950
+ fab: getFABTheme(globalTheme)
1903
1951
  }
1904
1952
  });
1905
1953
  };
@@ -13639,7 +13687,7 @@ var StyledBottomBarText = index$1(Typography.Text)(function (_ref3) {
13639
13687
  var isIOS = Platform.OS === 'ios';
13640
13688
  Platform.OS === 'android';
13641
13689
 
13642
- var _excluded$3 = ["onChange", "renderActiveTabOnly", "selectedTabKey", "tabs"];
13690
+ var _excluded$3 = ["onTabPress", "renderActiveTabOnly", "selectedTabKey", "tabs"];
13643
13691
 
13644
13692
  var getInactiveIcon = function getInactiveIcon(icon) {
13645
13693
  var inactiveIcon = "".concat(icon, "-outlined");
@@ -13647,7 +13695,7 @@ var getInactiveIcon = function getInactiveIcon(icon) {
13647
13695
  };
13648
13696
 
13649
13697
  var BottomNavigation = function BottomNavigation(_ref) {
13650
- var onChange = _ref.onChange,
13698
+ var onTabPress = _ref.onTabPress,
13651
13699
  _ref$renderActiveTabO = _ref.renderActiveTabOnly,
13652
13700
  renderActiveTabOnly = _ref$renderActiveTabO === void 0 ? false : _ref$renderActiveTabO,
13653
13701
  selectedTabKey = _ref.selectedTabKey,
@@ -13673,7 +13721,8 @@ var BottomNavigation = function BottomNavigation(_ref) {
13673
13721
 
13674
13722
  return /*#__PURE__*/React.createElement(BottomNavigationContainer, nativeProps, /*#__PURE__*/React.createElement(ContentWrapper$1, null, tabs.map(function (tab) {
13675
13723
  var key = tab.key,
13676
- component = tab.component;
13724
+ component = tab.component,
13725
+ testID = tab.testID;
13677
13726
  var active = selectedTabKey === key;
13678
13727
 
13679
13728
  if (renderActiveTabOnly && !active) {
@@ -13687,7 +13736,7 @@ var BottomNavigation = function BottomNavigation(_ref) {
13687
13736
 
13688
13737
  return /*#__PURE__*/React.createElement(BottomNavigationTab, {
13689
13738
  key: key,
13690
- testID: "route-screen-".concat(selectedTabKey),
13739
+ testID: testID ? "route-screen-".concat(testID) : undefined,
13691
13740
  pointerEvents: active ? 'auto' : 'none',
13692
13741
  accessibilityElementsHidden: !active,
13693
13742
  importantForAccessibility: active ? 'auto' : 'no-hide-descendants',
@@ -13709,9 +13758,7 @@ var BottomNavigation = function BottomNavigation(_ref) {
13709
13758
  return /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
13710
13759
  key: key,
13711
13760
  onPress: function onPress() {
13712
- if (key !== selectedTabKey) {
13713
- onChange(key);
13714
- }
13761
+ return onTabPress(key);
13715
13762
  },
13716
13763
  testID: testID
13717
13764
  }, /*#__PURE__*/React.createElement(BottomBarItem, null, /*#__PURE__*/React.createElement(Icon, {
@@ -14084,10 +14131,10 @@ var StyledHeaderTabText = index$1(Typography.Text)(function (_ref6) {
14084
14131
  };
14085
14132
  });
14086
14133
 
14087
- var _excluded = ["onChange", "renderActiveTabOnly", "selectedTabKey", "tabs"];
14134
+ var _excluded = ["onTabPress", "renderActiveTabOnly", "selectedTabKey", "tabs"];
14088
14135
 
14089
14136
  var Tabs = function Tabs(_ref) {
14090
- var onChange = _ref.onChange,
14137
+ var onTabPress = _ref.onTabPress,
14091
14138
  _ref$renderActiveTabO = _ref.renderActiveTabOnly,
14092
14139
  renderActiveTabOnly = _ref$renderActiveTabO === void 0 ? false : _ref$renderActiveTabO,
14093
14140
  selectedTabKey = _ref.selectedTabKey,
@@ -14105,6 +14152,21 @@ var Tabs = function Tabs(_ref) {
14105
14152
  loaded = _React$useState2[0],
14106
14153
  setLoaded = _React$useState2[1];
14107
14154
 
14155
+ React.useEffect(function () {
14156
+ var selectedTabIndex = tabs.findIndex(function (item) {
14157
+ return item.key === selectedTabKey;
14158
+ });
14159
+
14160
+ if (selectedTabIndex !== -1) {
14161
+ var _flatListRef$current;
14162
+
14163
+ (_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 ? void 0 : _flatListRef$current.scrollToIndex({
14164
+ index: selectedTabIndex,
14165
+ viewPosition: 0.5
14166
+ });
14167
+ }
14168
+ }, [selectedTabKey, tabs]);
14169
+
14108
14170
  if (!loaded.includes(selectedTabKey)) {
14109
14171
  // Set the current tab to be loaded if it was not loaded before
14110
14172
  setLoaded(function (loadedState) {
@@ -14125,17 +14187,16 @@ var Tabs = function Tabs(_ref) {
14125
14187
  onScrollToIndexFailed: function onScrollToIndexFailed(_ref2) {
14126
14188
  var index = _ref2.index;
14127
14189
  setTimeout(function () {
14128
- var _flatListRef$current;
14190
+ var _flatListRef$current2;
14129
14191
 
14130
- return (_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 ? void 0 : _flatListRef$current.scrollToIndex({
14192
+ return (_flatListRef$current2 = flatListRef.current) === null || _flatListRef$current2 === void 0 ? void 0 : _flatListRef$current2.scrollToIndex({
14131
14193
  index: index,
14132
14194
  viewPosition: 0.5
14133
14195
  });
14134
14196
  }, 100);
14135
14197
  },
14136
14198
  renderItem: function renderItem(_ref3) {
14137
- var tab = _ref3.item,
14138
- index = _ref3.index;
14199
+ var tab = _ref3.item;
14139
14200
  var key = tab.key,
14140
14201
  icon = tab.icon,
14141
14202
  title = tab.title,
@@ -14144,15 +14205,7 @@ var Tabs = function Tabs(_ref) {
14144
14205
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
14145
14206
  key: key,
14146
14207
  onPress: function onPress() {
14147
- if (key !== selectedTabKey) {
14148
- var _flatListRef$current2;
14149
-
14150
- onChange(key);
14151
- (_flatListRef$current2 = flatListRef.current) === null || _flatListRef$current2 === void 0 ? void 0 : _flatListRef$current2.scrollToIndex({
14152
- index: index,
14153
- viewPosition: 0.5
14154
- });
14155
- }
14208
+ return onTabPress(key);
14156
14209
  },
14157
14210
  testID: testID
14158
14211
  }, /*#__PURE__*/React.createElement(HeaderTabItem, null, /*#__PURE__*/React.createElement(StyledHeaderTabIcon, {
@@ -14167,7 +14220,8 @@ var Tabs = function Tabs(_ref) {
14167
14220
  }
14168
14221
  })), /*#__PURE__*/React.createElement(ContentWrapper, null, tabs.map(function (tab) {
14169
14222
  var key = tab.key,
14170
- component = tab.component;
14223
+ component = tab.component,
14224
+ testID = tab.testID;
14171
14225
  var active = selectedTabKey === key;
14172
14226
 
14173
14227
  if (renderActiveTabOnly && !active) {
@@ -14181,7 +14235,7 @@ var Tabs = function Tabs(_ref) {
14181
14235
 
14182
14236
  return /*#__PURE__*/React.createElement(TabScreen, {
14183
14237
  key: key,
14184
- testID: "tab-screen-".concat(selectedTabKey),
14238
+ testID: testID ? "tab-screen-".concat(testID) : undefined,
14185
14239
  pointerEvents: active ? 'auto' : 'none',
14186
14240
  accessibilityElementsHidden: !active,
14187
14241
  importantForAccessibility: active ? 'auto' : 'no-hide-descendants',