@hero-design/rn 8.37.0 → 8.38.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hero-design/rn",
3
- "version": "8.37.0",
3
+ "version": "8.38.0",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -21,14 +21,14 @@
21
21
  "dependencies": {
22
22
  "@emotion/native": "^11.9.3",
23
23
  "@emotion/react": "^11.9.3",
24
- "@hero-design/colors": "8.37.0",
24
+ "@hero-design/colors": "8.38.0",
25
25
  "date-fns": "^2.16.1",
26
26
  "events": "^3.2.0",
27
27
  "hero-editor": "^1.9.21",
28
28
  "nanoid": "^4.0.2"
29
29
  },
30
30
  "peerDependencies": {
31
- "@hero-design/react-native-month-year-picker": "^8.37.0",
31
+ "@hero-design/react-native-month-year-picker": "^8.38.0",
32
32
  "@react-native-community/datetimepicker": "^3.5.2",
33
33
  "@react-native-community/slider": "4.1.12",
34
34
  "react": "18.0.0",
@@ -48,8 +48,8 @@
48
48
  "@babel/preset-typescript": "^7.17.12",
49
49
  "@babel/runtime": "^7.18.9",
50
50
  "@emotion/jest": "^11.9.3",
51
- "@hero-design/eslint-plugin": "8.37.0",
52
- "@hero-design/react-native-month-year-picker": "^8.37.0",
51
+ "@hero-design/eslint-plugin": "8.38.0",
52
+ "@hero-design/react-native-month-year-picker": "^8.38.0",
53
53
  "@react-native-community/datetimepicker": "^3.5.2",
54
54
  "@react-native-community/slider": "4.1.12",
55
55
  "@rollup/plugin-babel": "^5.3.1",
@@ -65,10 +65,10 @@
65
65
  "@types/react-native": "^0.67.7",
66
66
  "@types/react-native-vector-icons": "^6.4.10",
67
67
  "babel-plugin-inline-import": "^3.0.0",
68
- "eslint-config-hd": "8.37.0",
68
+ "eslint-config-hd": "8.38.0",
69
69
  "eslint-plugin-import": "^2.27.5",
70
70
  "jest": "^27.3.1",
71
- "prettier-config-hd": "8.37.0",
71
+ "prettier-config-hd": "8.38.0",
72
72
  "react": "18.0.0",
73
73
  "react-native": "0.69.7",
74
74
  "react-native-gesture-handler": "~2.5.0",
@@ -0,0 +1,52 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`HeroDesignProvider renders children correctly 1`] = `
4
+ <View
5
+ style={
6
+ Object {
7
+ "flex": 1,
8
+ }
9
+ }
10
+ >
11
+ <Text
12
+ allowFontScaling={false}
13
+ style={
14
+ Array [
15
+ Object {
16
+ "color": "#401960",
17
+ "fontFamily": "BeVietnamPro-Regular",
18
+ "fontSize": 42,
19
+ "letterSpacing": 0,
20
+ "lineHeight": 50,
21
+ },
22
+ undefined,
23
+ ]
24
+ }
25
+ themeIntent="primary"
26
+ themeLevel="h1"
27
+ themeTypeface="neutral"
28
+ >
29
+ Test component
30
+ </Text>
31
+ <View
32
+ pointerEvents="box-none"
33
+ position="bottom"
34
+ style={
35
+ Array [
36
+ Object {
37
+ "bottom": 0,
38
+ "elevation": 9999,
39
+ "flexDirection": "column-reverse",
40
+ "left": 0,
41
+ "paddingHorizontal": 24,
42
+ "paddingVertical": 16,
43
+ "position": "absolute",
44
+ "right": 0,
45
+ "top": 0,
46
+ },
47
+ undefined,
48
+ ]
49
+ }
50
+ />
51
+ </View>
52
+ `;
@@ -0,0 +1,78 @@
1
+ import React from 'react';
2
+ import { waitFor, within } from '@testing-library/react-native';
3
+ import renderWithTheme from '../../../testHelpers/renderWithTheme';
4
+ import Typography from '../../Typography';
5
+ import HeroDesignProvider from '..';
6
+ import { getTheme } from '../../../theme';
7
+ import Toast from '../../Toast';
8
+ import Box from '../../Box';
9
+ import Portal from '../../Portal';
10
+
11
+ const TestComponent = () => (
12
+ <Typography.Title intent="primary">Test component</Typography.Title>
13
+ );
14
+ const theme = getTheme();
15
+
16
+ describe('HeroDesignProvider', () => {
17
+ it('renders children correctly', () => {
18
+ const { toJSON, getByText } = renderWithTheme(
19
+ <HeroDesignProvider theme={theme}>
20
+ <TestComponent />
21
+ </HeroDesignProvider>
22
+ );
23
+
24
+ expect(toJSON()).toMatchSnapshot();
25
+ expect(getByText('Test component')).toBeTruthy();
26
+ expect(getByText('Test component')).toHaveStyle({
27
+ color: theme.colors.primary,
28
+ });
29
+ });
30
+
31
+ it('renders toast correctly', async () => {
32
+ const Component = () => {
33
+ const toast = Toast.useToast();
34
+
35
+ React.useEffect(() => {
36
+ toast.show({
37
+ content: 'Your timesheet has been deleted.',
38
+ intent: 'warning',
39
+ variant: 'round',
40
+ duration: 50,
41
+ });
42
+ }, []);
43
+
44
+ return <TestComponent />;
45
+ };
46
+
47
+ const { queryByText } = renderWithTheme(
48
+ <HeroDesignProvider theme={theme}>
49
+ <Component />
50
+ </HeroDesignProvider>
51
+ );
52
+
53
+ expect(queryByText('Your timesheet has been deleted.')).toBeTruthy();
54
+
55
+ await waitFor(() =>
56
+ expect(queryByText('Your timesheet has been deleted.')).toBeFalsy()
57
+ );
58
+ });
59
+
60
+ it('renders portal content correctly', async () => {
61
+ const { getByTestId } = renderWithTheme(
62
+ <HeroDesignProvider theme={theme}>
63
+ <Box testID="portal-wrapper">
64
+ <Portal.Host name="host" />
65
+ </Box>
66
+ <Portal hostName="host">
67
+ <Typography.Body>Portal content</Typography.Body>;
68
+ </Portal>
69
+ </HeroDesignProvider>
70
+ );
71
+
72
+ await waitFor(() =>
73
+ expect(
74
+ within(getByTestId('portal-wrapper')).getByText('Portal content')
75
+ ).toBeDefined()
76
+ );
77
+ });
78
+ });
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import ThemeProvider, { ThemeProviderProps } from '../../theme/ThemeProvider';
3
+ import Toast from '../Toast';
4
+ import Portal from '../Portal';
5
+
6
+ const HeroDesignProvider = ({ theme, children }: ThemeProviderProps) => (
7
+ <ThemeProvider theme={theme}>
8
+ <Toast.Provider>
9
+ <Portal.Provider>{children}</Portal.Provider>
10
+ </Toast.Provider>
11
+ </ThemeProvider>
12
+ );
13
+
14
+ export default HeroDesignProvider;
package/src/index.ts CHANGED
@@ -34,6 +34,7 @@ import Drawer from './components/Drawer';
34
34
  import Empty from './components/Empty';
35
35
  import Error from './components/Error';
36
36
  import FAB from './components/FAB';
37
+ import HeroDesignProvider from './components/HeroDesignProvider';
37
38
  import Icon from './components/Icon';
38
39
  import Image from './components/Image';
39
40
  import List from './components/List';
@@ -100,6 +101,7 @@ export {
100
101
  FAB,
101
102
  Icon,
102
103
  Image,
104
+ HeroDesignProvider,
103
105
  List,
104
106
  Modal,
105
107
  PinInput,
@@ -0,0 +1,3 @@
1
+ import { ThemeProviderProps } from '../../theme/ThemeProvider';
2
+ declare const HeroDesignProvider: ({ theme, children }: ThemeProviderProps) => JSX.Element;
3
+ export default HeroDesignProvider;
package/types/index.d.ts CHANGED
@@ -21,6 +21,7 @@ import Drawer from './components/Drawer';
21
21
  import Empty from './components/Empty';
22
22
  import Error from './components/Error';
23
23
  import FAB from './components/FAB';
24
+ import HeroDesignProvider from './components/HeroDesignProvider';
24
25
  import Icon from './components/Icon';
25
26
  import Image from './components/Image';
26
27
  import List from './components/List';
@@ -48,5 +49,5 @@ import RefreshControl from './components/RefreshControl';
48
49
  import RichTextEditor from './components/RichTextEditor';
49
50
  import PageControl from './components/PageControl';
50
51
  import Portal from './components/Portal';
51
- export { theme, getTheme, useTheme, scale, ThemeProvider, ThemeSwitcher, withTheme, swagSystemPalette, swagDarkSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, Accordion, Alert, Attachment, Avatar, useAvatarColors, Badge, BottomNavigation, BottomSheet, Box, Button, Calendar, Card, Carousel, Collapse, Checkbox, ContentNavigator, DatePicker, Divider, Drawer, Empty, Error, FAB, Icon, Image, List, Modal, PinInput, Progress, Portal, PageControl, Skeleton, Slider, Spinner, Swipeable, Radio, SectionHeading, Select, Success, Switch, Tabs, Tag, TextInput, TimePicker, Toast, Toolbar, Typography, Rate, RefreshControl, RichTextEditor, };
52
+ export { theme, getTheme, useTheme, scale, ThemeProvider, ThemeSwitcher, withTheme, swagSystemPalette, swagDarkSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, Accordion, Alert, Attachment, Avatar, useAvatarColors, Badge, BottomNavigation, BottomSheet, Box, Button, Calendar, Card, Carousel, Collapse, Checkbox, ContentNavigator, DatePicker, Divider, Drawer, Empty, Error, FAB, Icon, Image, HeroDesignProvider, List, Modal, PinInput, Progress, Portal, PageControl, Skeleton, Slider, Spinner, Swipeable, Radio, SectionHeading, Select, Success, Switch, Tabs, Tag, TextInput, TimePicker, Toast, Toolbar, Typography, Rate, RefreshControl, RichTextEditor, };
52
53
  export * from './types';