@hero-design/rn 8.113.0 → 8.113.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 (81) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/CHANGELOG.md +11 -0
  3. package/es/index.js +116 -133
  4. package/lib/index.js +115 -132
  5. package/package.json +4 -4
  6. package/src/components/Alert/index.tsx +1 -1
  7. package/src/components/Badge/Count.tsx +2 -2
  8. package/src/components/Badge/Status.tsx +2 -2
  9. package/src/components/Badge/index.tsx +2 -1
  10. package/src/components/BottomNavigation/StyledBottomNavigation.tsx +1 -1
  11. package/src/components/BottomNavigation/__tests__/__snapshots__/index.spec.tsx.snap +32 -36
  12. package/src/components/BottomNavigation/__tests__/index.spec.tsx +17 -8
  13. package/src/components/BottomNavigation/index.tsx +4 -5
  14. package/src/components/BottomSheet/ScrollView.tsx +2 -1
  15. package/src/components/BottomSheet/index.tsx +1 -1
  16. package/src/components/Button/Button.tsx +2 -2
  17. package/src/components/Calendar/__tests__/index.spec.tsx +3 -8
  18. package/src/components/Card/DataCard/index.tsx +2 -2
  19. package/src/components/Card/index.tsx +2 -2
  20. package/src/components/Carousel/index.tsx +2 -2
  21. package/src/components/DatePicker/Dialog/__tests__/IOSDialog.spec.tsx +0 -6
  22. package/src/components/DatePicker/__tests__/DatePickerCalendar.spec.tsx +2 -10
  23. package/src/components/DatePicker/__tests__/DatePickerIOS.spec.tsx +27 -0
  24. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerIOS.spec.tsx.snap +176 -728
  25. package/src/components/Drawer/DragableDrawer/index.tsx +2 -2
  26. package/src/components/Drawer/index.tsx +2 -2
  27. package/src/components/FAB/__tests__/index.spec.tsx +33 -8
  28. package/src/components/Image/index.tsx +2 -1
  29. package/src/components/List/BasicListItem.tsx +2 -1
  30. package/src/components/List/ListItem.tsx +1 -1
  31. package/src/components/MapPin/Focussed.tsx +2 -1
  32. package/src/components/MapPin/index.tsx +2 -1
  33. package/src/components/Modal/__tests__/index.spec.tsx +46 -0
  34. package/src/components/Modal/index.tsx +121 -149
  35. package/src/components/Progress/ProgressBar.tsx +2 -1
  36. package/src/components/Progress/ProgressCircle.tsx +2 -1
  37. package/src/components/RichTextEditor/MentionList.tsx +2 -1
  38. package/src/components/Tabs/ScrollableTabsHeader/ScrollableTabsHeader.tsx +4 -6
  39. package/src/components/Tabs/__tests__/ScrollableTabs.spec.tsx +43 -32
  40. package/src/components/Tabs/__tests__/__snapshots__/ScrollableTabs.spec.tsx.snap +105 -129
  41. package/src/components/Tabs/__tests__/__snapshots__/ScrollableTabsHeader.spec.tsx.snap +30 -42
  42. package/src/components/Tabs/__tests__/__snapshots__/index.spec.tsx.snap +0 -683
  43. package/src/components/Tabs/__tests__/index.spec.tsx +37 -25
  44. package/src/components/Tabs/index.tsx +2 -2
  45. package/src/components/Tag/index.tsx +1 -1
  46. package/src/components/TimePicker/__tests__/TimePickerIOS.spec.tsx +0 -6
  47. package/src/components/TimePicker/__tests__/__snapshots__/TimePickerIOS.spec.tsx.snap +237 -282
  48. package/src/components/Toast/Toast.tsx +2 -1
  49. package/src/components/Toolbar/ToolbarItem.tsx +2 -1
  50. package/src/components/Typography/Label/index.tsx +1 -1
  51. package/src/testHelpers/renderWithTheme.tsx +2 -1
  52. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +1 -1
  53. package/src/theme/components/bottomNavigation.ts +1 -1
  54. package/types/components/Alert/index.d.ts +1 -1
  55. package/types/components/Badge/Count.d.ts +2 -2
  56. package/types/components/Badge/Status.d.ts +2 -2
  57. package/types/components/Badge/index.d.ts +4 -3
  58. package/types/components/BottomNavigation/StyledBottomNavigation.d.ts +1 -1
  59. package/types/components/BottomNavigation/index.d.ts +2 -2
  60. package/types/components/BottomSheet/index.d.ts +1 -1
  61. package/types/components/Button/Button.d.ts +2 -2
  62. package/types/components/Card/DataCard/index.d.ts +2 -2
  63. package/types/components/Card/index.d.ts +3 -3
  64. package/types/components/Carousel/index.d.ts +2 -2
  65. package/types/components/Drawer/DragableDrawer/index.d.ts +2 -2
  66. package/types/components/Drawer/index.d.ts +3 -3
  67. package/types/components/Image/index.d.ts +2 -1
  68. package/types/components/List/BasicListItem.d.ts +2 -1
  69. package/types/components/List/ListItem.d.ts +1 -1
  70. package/types/components/MapPin/Focussed.d.ts +2 -1
  71. package/types/components/MapPin/index.d.ts +3 -2
  72. package/types/components/Modal/index.d.ts +2 -2
  73. package/types/components/Progress/ProgressBar.d.ts +2 -1
  74. package/types/components/Progress/ProgressCircle.d.ts +2 -1
  75. package/types/components/Progress/index.d.ts +2 -2
  76. package/types/components/RichTextEditor/MentionList.d.ts +2 -1
  77. package/types/components/Tabs/index.d.ts +2 -2
  78. package/types/components/Tag/index.d.ts +1 -1
  79. package/types/components/Toast/Toast.d.ts +2 -1
  80. package/types/components/Typography/Label/index.d.ts +1 -1
  81. package/types/testHelpers/renderWithTheme.d.ts +84 -1
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Text } from 'react-native';
3
- import { fireEvent, waitFor } from '@testing-library/react-native';
3
+ import { fireEvent, act } from '@testing-library/react-native';
4
4
  import { SafeAreaProvider } from 'react-native-safe-area-context';
5
5
  import type { ComponentProps } from 'react';
6
6
  import renderWithTheme from '../../../testHelpers/renderWithTheme';
@@ -103,7 +103,9 @@ describe('Tabs', () => {
103
103
  );
104
104
 
105
105
  expect(getByText('Work Screen focused')).toBeDefined();
106
- expect(getByText('Personal Screen unfocused')).toBeDefined();
106
+ expect(
107
+ getByText('Personal Screen unfocused', { hidden: true })
108
+ ).toBeDefined();
107
109
  // Preload distance is 1, so Home Screen is not rendered.
108
110
  expect(queryByText('Home Screen')).toBeNull();
109
111
 
@@ -146,34 +148,44 @@ describe('Tabs', () => {
146
148
 
147
149
  describe('useIsFocused', () => {
148
150
  it('renders correctly', async () => {
149
- const { getByText, toJSON } = renderWithTheme(<TestTabsComponent />);
151
+ const { getByText, toJSON } = renderWithTheme(
152
+ <TestTabsComponent lazyPreloadDistance={4} />
153
+ );
150
154
 
151
155
  expect(toJSON()).toMatchSnapshot();
152
156
  expect(getByText('Work Screen focused')).toBeDefined();
153
- expect(getByText('Personal Screen unfocused')).toBeDefined();
154
- await waitFor(() =>
155
- expect(getByText('Home Screen unfocused')).toBeDefined()
156
- );
157
- expect(getByText('Home Screen unfocused')).toBeDefined();
158
- expect(getByText('Money Screen unfocused')).toBeDefined();
159
-
160
- fireEvent.press(getByText('Personal'));
161
- expect(toJSON()).toMatchSnapshot('xxxxxx');
157
+ expect(
158
+ getByText('Personal Screen unfocused', { hidden: true })
159
+ ).toBeDefined();
160
+ expect(getByText('Home Screen unfocused', { hidden: true })).toBeDefined();
161
+ expect(getByText('Money Screen unfocused', { hidden: true })).toBeDefined();
162
+
163
+ act(() => {
164
+ fireEvent.press(getByText('Personal'));
165
+ });
162
166
  expect(getByText('Personal Screen focused')).toBeDefined();
163
- expect(getByText('Work Screen unfocused')).toBeDefined();
164
- expect(getByText('Home Screen unfocused')).toBeDefined();
165
- expect(getByText('Money Screen unfocused')).toBeDefined();
166
-
167
- fireEvent.press(getByText('Home'));
168
- expect(getByText('Personal Screen unfocused')).toBeDefined();
169
- expect(getByText('Work Screen unfocused')).toBeDefined();
167
+ expect(getByText('Work Screen unfocused', { hidden: true })).toBeDefined();
168
+ expect(getByText('Home Screen unfocused', { hidden: true })).toBeDefined();
169
+ expect(getByText('Money Screen unfocused', { hidden: true })).toBeDefined();
170
+
171
+ act(() => {
172
+ fireEvent.press(getByText('Home'));
173
+ });
174
+ expect(
175
+ getByText('Personal Screen unfocused', { hidden: true })
176
+ ).toBeDefined();
177
+ expect(getByText('Work Screen unfocused', { hidden: true })).toBeDefined();
170
178
  expect(getByText('Home Screen focused')).toBeDefined();
171
- expect(getByText('Money Screen unfocused')).toBeDefined();
172
-
173
- fireEvent.press(getByText('Money'));
174
- expect(getByText('Personal Screen unfocused')).toBeDefined();
175
- expect(getByText('Work Screen unfocused')).toBeDefined();
176
- expect(getByText('Home Screen unfocused')).toBeDefined();
179
+ expect(getByText('Money Screen unfocused', { hidden: true })).toBeDefined();
180
+
181
+ act(() => {
182
+ fireEvent.press(getByText('Money'));
183
+ });
184
+ expect(
185
+ getByText('Personal Screen unfocused', { hidden: true })
186
+ ).toBeDefined();
187
+ expect(getByText('Work Screen unfocused', { hidden: true })).toBeDefined();
188
+ expect(getByText('Home Screen unfocused', { hidden: true })).toBeDefined();
177
189
  expect(getByText('Money Screen focused')).toBeDefined();
178
190
  expect(getByText('50')).toBeDefined();
179
191
  });
@@ -1,5 +1,5 @@
1
1
  import { useTheme } from '@emotion/react';
2
- import type { ReactNode } from 'react';
2
+ import type { ReactElement, ReactNode } from 'react';
3
3
  import React, { useEffect, useMemo, useRef, useState } from 'react';
4
4
  import type { StyleProp, ViewProps, ViewStyle } from 'react-native';
5
5
  import { Animated, TouchableWithoutFeedback, View } from 'react-native';
@@ -114,7 +114,7 @@ const Tabs = ({
114
114
  lazyPreloadDistance = 1,
115
115
  swipeEnabled = true,
116
116
  testID: componentTestID,
117
- }: TabsProps): JSX.Element => {
117
+ }: TabsProps): ReactElement => {
118
118
  const theme = useTheme();
119
119
  const insets = useSafeAreaInsets();
120
120
  const pagerViewRef = useRef<PagerView>(null);
@@ -36,7 +36,7 @@ const Tag = ({
36
36
  style,
37
37
  testID,
38
38
  ...nativeProps
39
- }: TagProps): JSX.Element => {
39
+ }: TagProps): ReactElement => {
40
40
  useDeprecation(
41
41
  `Tag's variant prop is deprecated and will be removed in the next major release. Please remove it.`,
42
42
  variant !== undefined
@@ -1,15 +1,9 @@
1
1
  import { fireEvent } from '@testing-library/react-native';
2
2
  import React from 'react';
3
- import type { ModalProps } from 'react-native';
4
3
  import renderWithTheme from '../../../testHelpers/renderWithTheme';
5
4
  import TimePickerIOS from '../TimePickerIOS';
6
5
  import { setOrientation } from '../../../testHelpers/utils';
7
6
 
8
- jest.mock('react-native/Libraries/Modal/Modal', () => {
9
- const Modal = jest.requireActual('react-native/Libraries/Modal/Modal');
10
- return (props: ModalProps) => <Modal {...props} />;
11
- });
12
-
13
7
  describe('TimePickerIOS', () => {
14
8
  it('renders correctly', () => {
15
9
  const onChange = jest.fn();