@omniumretail/component-library 1.0.74 → 1.0.76

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 (176) hide show
  1. package/.storybook/main.js +16 -16
  2. package/.storybook/preview-head.html +20 -20
  3. package/.storybook/preview.js +27 -27
  4. package/NPMPUBLISH.md +29 -29
  5. package/README.md +54 -54
  6. package/bitbucket-pipelines.yml +94 -94
  7. package/dist/bundle.js +247 -291
  8. package/dist/types/components/AnalyticsBar/AnalyticsBar.stories.d.ts +5 -5
  9. package/dist/types/components/AnalyticsBar/helpers/codeMutation.d.ts +4 -4
  10. package/dist/types/components/AnalyticsBar/index.d.ts +2 -2
  11. package/dist/types/components/AnalyticsBar/interfaces/analyticsBar.d.ts +12 -12
  12. package/dist/types/components/Button/Button.stories.d.ts +6 -6
  13. package/dist/types/components/Button/index.d.ts +7 -7
  14. package/dist/types/components/Category/Category.stories.d.ts +4 -4
  15. package/dist/types/components/Category/CategoryContent/index.d.ts +7 -7
  16. package/dist/types/components/Category/CategorySidebar/index.d.ts +26 -26
  17. package/dist/types/components/Category/index.d.ts +7 -7
  18. package/dist/types/components/CategoryReadOnly/CategoryReadOnly.stories.d.ts +4 -4
  19. package/dist/types/components/CategoryReadOnly/evaluationOptions.d.ts +10 -10
  20. package/dist/types/components/CategoryReadOnly/index.d.ts +9 -9
  21. package/dist/types/components/CategoryResponse/CategoryResponse.stories.d.ts +4 -4
  22. package/dist/types/components/CategoryResponse/evaluationOptions.d.ts +10 -10
  23. package/dist/types/components/CategoryResponse/index.d.ts +9 -9
  24. package/dist/types/components/DatePicker/DatePicker.stories.d.ts +5 -5
  25. package/dist/types/components/DatePicker/index.d.ts +8 -8
  26. package/dist/types/components/DatePickerTag/DatePickerTag.stories.d.ts +5 -5
  27. package/dist/types/components/DatePickerTag/index.d.ts +6 -6
  28. package/dist/types/components/Footer/Footer.stories.d.ts +5 -5
  29. package/dist/types/components/Footer/index.d.ts +4 -4
  30. package/dist/types/components/Input/Input.stories.d.ts +5 -5
  31. package/dist/types/components/Input/index.d.ts +10 -10
  32. package/dist/types/components/InputCountryCode/index.d.ts +10 -10
  33. package/dist/types/components/InputCountryCode/inputCountryCode.stories.d.ts +5 -5
  34. package/dist/types/components/Label/Label.stories.d.ts +6 -6
  35. package/dist/types/components/Label/index.d.ts +7 -7
  36. package/dist/types/components/Link/Link.stories.d.ts +7 -7
  37. package/dist/types/components/Link/index.d.ts +7 -7
  38. package/dist/types/components/Menu/Menu.stories.d.ts +5 -5
  39. package/dist/types/components/Menu/helpers/codeMutation.d.ts +4 -4
  40. package/dist/types/components/Menu/index.d.ts +3 -2
  41. package/dist/types/components/ModalConfirmation/ModalConfirmation.stories.d.ts +5 -5
  42. package/dist/types/components/ModalConfirmation/ModalStatusList.d.ts +5 -5
  43. package/dist/types/components/ModalConfirmation/index.d.ts +9 -9
  44. package/dist/types/components/ModalWithTable/ModalWithTable.stories.d.ts +5 -5
  45. package/dist/types/components/ModalWithTable/index.d.ts +13 -13
  46. package/dist/types/components/Navigation/Navigation.stories.d.ts +5 -5
  47. package/dist/types/components/Navigation/index.d.ts +10 -10
  48. package/dist/types/components/Notification/Notification.stories.d.ts +5 -5
  49. package/dist/types/components/Notification/index.d.ts +9 -9
  50. package/dist/types/components/Questions/Questions.stories.d.ts +4 -4
  51. package/dist/types/components/Questions/SingleQuestion/index.d.ts +1 -1
  52. package/dist/types/components/Questions/index.d.ts +5 -5
  53. package/dist/types/components/Radio/Radio.stories.d.ts +5 -5
  54. package/dist/types/components/Radio/index.d.ts +10 -10
  55. package/dist/types/components/Select/Select.stories.d.ts +6 -6
  56. package/dist/types/components/Select/index.d.ts +5 -5
  57. package/dist/types/components/Separator/Separator.stories.d.ts +6 -6
  58. package/dist/types/components/Separator/index.d.ts +11 -11
  59. package/dist/types/components/Sidebar/Sidebar.stories.d.ts +6 -6
  60. package/dist/types/components/Sidebar/index.d.ts +15 -15
  61. package/dist/types/components/Switch/Switch.stories.d.ts +5 -5
  62. package/dist/types/components/Switch/index.d.ts +2 -2
  63. package/dist/types/components/Table/Table.stories.d.ts +9 -9
  64. package/dist/types/components/Table/index.d.ts +37 -37
  65. package/dist/types/components/Tag/Tag.stories.d.ts +5 -5
  66. package/dist/types/components/Tag/index.d.ts +8 -8
  67. package/dist/types/components/Upload/Upload.stories.d.ts +4 -4
  68. package/dist/types/components/Upload/index.d.ts +8 -8
  69. package/dist/types/components/UserInfo/UserInfo.stories.d.ts +4 -4
  70. package/dist/types/components/UserInfo/index.d.ts +8 -8
  71. package/dist/types/components/index.d.ts +25 -25
  72. package/dist/types/constants/i18n.d.ts +1 -1
  73. package/dist/types/constants/translationHelper.d.ts +2 -2
  74. package/dist/types/index.d.ts +2 -2
  75. package/package.json +198 -198
  76. package/src/assets/scss/_global.scss +89 -89
  77. package/src/assets/scss/index.scss +2 -2
  78. package/src/components/AnalyticsBar/AnalyticsBar.stories.tsx +236 -236
  79. package/src/components/AnalyticsBar/helpers/codeMutation.tsx +19 -19
  80. package/src/components/AnalyticsBar/index.tsx +76 -76
  81. package/src/components/AnalyticsBar/interfaces/analyticsBar.tsx +13 -13
  82. package/src/components/AnalyticsBar/styles.module.scss +108 -108
  83. package/src/components/Button/Button.stories.tsx +26 -26
  84. package/src/components/Button/index.tsx +24 -24
  85. package/src/components/Button/styles.module.scss +65 -65
  86. package/src/components/Category/Category.stories.tsx +88 -88
  87. package/src/components/Category/CategoryContent/index.tsx +188 -188
  88. package/src/components/Category/CategoryContent/styles.module.scss +51 -51
  89. package/src/components/Category/CategorySidebar/index.tsx +268 -268
  90. package/src/components/Category/CategorySidebar/styles.module.scss +28 -28
  91. package/src/components/Category/index.tsx +76 -76
  92. package/src/components/Category/styles.module.scss +13 -13
  93. package/src/components/CategoryReadOnly/CategoryReadOnly.stories.tsx +270 -270
  94. package/src/components/CategoryReadOnly/evaluationOptions.tsx +81 -81
  95. package/src/components/CategoryReadOnly/index.tsx +254 -254
  96. package/src/components/CategoryReadOnly/styles.module.scss +184 -184
  97. package/src/components/CategoryResponse/CategoryResponse.stories.tsx +251 -251
  98. package/src/components/CategoryResponse/evaluationOptions.tsx +81 -81
  99. package/src/components/CategoryResponse/index.tsx +277 -277
  100. package/src/components/CategoryResponse/styles.module.scss +180 -180
  101. package/src/components/DatePicker/DatePicker.stories.tsx +16 -16
  102. package/src/components/DatePicker/index.tsx +38 -38
  103. package/src/components/DatePicker/styles.module.scss +3 -3
  104. package/src/components/DatePickerTag/DatePickerTag.stories.tsx +19 -19
  105. package/src/components/DatePickerTag/index.tsx +89 -89
  106. package/src/components/DatePickerTag/styles.module.scss +31 -31
  107. package/src/components/Footer/Footer.stories.tsx +14 -14
  108. package/src/components/Footer/index.tsx +38 -38
  109. package/src/components/Footer/styles.module.scss +38 -38
  110. package/src/components/Input/Input.stories.tsx +13 -13
  111. package/src/components/Input/index.tsx +31 -31
  112. package/src/components/Input/styles.module.scss +8 -8
  113. package/src/components/InputCountryCode/index.tsx +75 -75
  114. package/src/components/InputCountryCode/inputCountryCode.stories.tsx +55 -55
  115. package/src/components/InputCountryCode/styles.module.scss +3 -3
  116. package/src/components/Label/Label.stories.tsx +21 -21
  117. package/src/components/Label/index.tsx +19 -19
  118. package/src/components/Label/styles.module.scss +16 -16
  119. package/src/components/Link/Link.stories.tsx +30 -30
  120. package/src/components/Link/index.tsx +21 -21
  121. package/src/components/Link/styles.module.scss +24 -24
  122. package/src/components/Menu/Menu.stories.tsx +178 -178
  123. package/src/components/Menu/helpers/codeMutation.tsx +19 -19
  124. package/src/components/Menu/index.tsx +23 -23
  125. package/src/components/ModalConfirmation/ModalConfirmation.stories.tsx +40 -40
  126. package/src/components/ModalConfirmation/ModalStatusList.tsx +5 -5
  127. package/src/components/ModalConfirmation/index.tsx +70 -70
  128. package/src/components/ModalConfirmation/styles.module.scss +62 -62
  129. package/src/components/ModalWithTable/ModalWithTable.stories.tsx +96 -96
  130. package/src/components/ModalWithTable/index.tsx +232 -232
  131. package/src/components/ModalWithTable/styles.module.scss +77 -77
  132. package/src/components/Navigation/Navigation.stories.tsx +17 -17
  133. package/src/components/Navigation/index.tsx +33 -33
  134. package/src/components/Navigation/styles.module.scss +59 -59
  135. package/src/components/Notification/Notification.stories.tsx +29 -29
  136. package/src/components/Notification/index.tsx +21 -21
  137. package/src/components/Questions/Questions.stories.tsx +37 -37
  138. package/src/components/Questions/SingleQuestion/index.tsx +84 -84
  139. package/src/components/Questions/SingleQuestion/styles.module.scss +81 -81
  140. package/src/components/Questions/index.tsx +78 -78
  141. package/src/components/Radio/Radio.stories.tsx +43 -43
  142. package/src/components/Radio/index.tsx +26 -26
  143. package/src/components/Radio/styles.module.scss +23 -23
  144. package/src/components/Select/Select.stories.tsx +39 -39
  145. package/src/components/Select/index.tsx +27 -27
  146. package/src/components/Select/styles.module.scss +13 -13
  147. package/src/components/Separator/Separator.stories.tsx +22 -22
  148. package/src/components/Separator/index.tsx +27 -27
  149. package/src/components/Separator/styles.module.scss +25 -25
  150. package/src/components/Sidebar/Sidebar.stories.tsx +85 -85
  151. package/src/components/Sidebar/index.tsx +103 -103
  152. package/src/components/Sidebar/styles.module.scss +85 -85
  153. package/src/components/Switch/Switch.stories.tsx +14 -14
  154. package/src/components/Switch/index.tsx +8 -8
  155. package/src/components/Switch/styles.module.scss +7 -7
  156. package/src/components/Table/Table.stories.tsx +222 -222
  157. package/src/components/Table/index.tsx +279 -275
  158. package/src/components/Table/styles.module.scss +75 -75
  159. package/src/components/Tag/Tag.stories.tsx +22 -22
  160. package/src/components/Tag/index.tsx +189 -189
  161. package/src/components/Tag/styles.module.scss +60 -60
  162. package/src/components/Upload/Upload.stories.tsx +45 -45
  163. package/src/components/Upload/index.tsx +91 -91
  164. package/src/components/UserInfo/UserInfo.stories.tsx +38 -37
  165. package/src/components/UserInfo/index.tsx +77 -62
  166. package/src/components/UserInfo/styles.module.scss +30 -29
  167. package/src/components/index.tsx +25 -25
  168. package/src/constants/i18n.ts +25 -25
  169. package/src/constants/translationHelper.ts +7 -7
  170. package/src/index.ts +2 -2
  171. package/src/locales/en.json +86 -86
  172. package/src/locales/es.json +86 -86
  173. package/src/locales/pt.json +86 -86
  174. package/src/types/Global.d.ts +4 -4
  175. package/tsconfig.json +29 -29
  176. package/webpack.config.js +51 -51
@@ -1,60 +1,60 @@
1
- .tagfield {
2
- contain: inline-size;
3
-
4
- &__creator {
5
- height: 50px;
6
- display: flex;
7
- align-items: center;
8
- gap: 12px;
9
- padding: 16px;
10
- margin-inline-end: 0;
11
-
12
- :global {
13
- .ant-input {
14
- height: 50px;
15
- padding-left: 40px;
16
- }
17
- }
18
- }
19
-
20
- &__input {
21
- height: 50px;
22
- }
23
-
24
- &__new {
25
- :global {
26
- .ant-tag {
27
- background-color: var(--color-orange);
28
- color: var(--color-white);
29
- padding: 6px 16px;
30
- max-width: 240px;
31
- }
32
-
33
- .anticon-close {
34
- color: var(--color-white);
35
- font-size: 12px;
36
-
37
- &:hover {
38
- color: var(--color-black);
39
- }
40
- }
41
- }
42
- }
43
-
44
- .advancedTagsWrapper {
45
- display: flex;
46
- gap: 12px;
47
- }
48
-
49
- .advancedTags {
50
- display: flex;
51
- flex-direction: row;
52
- gap: 12px;
53
- font-family: "SilkaBold";
54
- text-decoration: underline;
55
-
56
- div {
57
- cursor: pointer;
58
- }
59
- }
60
- }
1
+ .tagfield {
2
+ contain: inline-size;
3
+
4
+ &__creator {
5
+ height: 50px;
6
+ display: flex;
7
+ align-items: center;
8
+ gap: 12px;
9
+ padding: 16px;
10
+ margin-inline-end: 0;
11
+
12
+ :global {
13
+ .ant-input {
14
+ height: 50px;
15
+ padding-left: 40px;
16
+ }
17
+ }
18
+ }
19
+
20
+ &__input {
21
+ height: 50px;
22
+ }
23
+
24
+ &__new {
25
+ :global {
26
+ .ant-tag {
27
+ background-color: var(--color-orange);
28
+ color: var(--color-white);
29
+ padding: 6px 16px;
30
+ max-width: 240px;
31
+ }
32
+
33
+ .anticon-close {
34
+ color: var(--color-white);
35
+ font-size: 12px;
36
+
37
+ &:hover {
38
+ color: var(--color-black);
39
+ }
40
+ }
41
+ }
42
+ }
43
+
44
+ .advancedTagsWrapper {
45
+ display: flex;
46
+ gap: 12px;
47
+ }
48
+
49
+ .advancedTags {
50
+ display: flex;
51
+ flex-direction: row;
52
+ gap: 12px;
53
+ font-family: "SilkaBold";
54
+ text-decoration: underline;
55
+
56
+ div {
57
+ cursor: pointer;
58
+ }
59
+ }
60
+ }
@@ -1,45 +1,45 @@
1
- import { Meta, Story } from "@storybook/react";
2
- import { Form, UploadFile } from "antd";
3
- import { Button } from "components/Button";
4
- import { Upload } from '.';
5
-
6
- export default {
7
- title: 'Upload',
8
- component: Upload,
9
- } as Meta;
10
-
11
- const Template: Story<any> = (args) => {
12
- const [form] = Form.useForm();
13
-
14
- const handleSubmit = (values: any) => {
15
- console.log('Form values:', values);
16
- };
17
-
18
- const handleImageChange = (file: UploadFile | null) => {
19
- form.setFieldsValue({ image: file?.originFileObj });
20
- };
21
-
22
- const initialValue = {
23
- uid: '-1',
24
- name: 'image.png',
25
- status: 'done',
26
- url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
27
- }
28
- return (
29
- <Form form={form} onFinish={handleSubmit}>
30
- <Form.Item name="image" valuePropName="file" initialValue={initialValue}>
31
- <Upload {...args} onImageChange={handleImageChange} initialFileList={[initialValue]}></Upload>
32
- </Form.Item>
33
- <Form.Item>
34
- <Button type="primary" htmlType="submit">
35
- Submit
36
- </Button>
37
- </Form.Item>
38
- </Form>
39
- )
40
- }
41
-
42
-
43
- export const Primary = Template.bind({});
44
- Primary.args = {
45
- };
1
+ import { Meta, Story } from "@storybook/react";
2
+ import { Form, UploadFile } from "antd";
3
+ import { Button } from "components/Button";
4
+ import { Upload } from '.';
5
+
6
+ export default {
7
+ title: 'Upload',
8
+ component: Upload,
9
+ } as Meta;
10
+
11
+ const Template: Story<any> = (args) => {
12
+ const [form] = Form.useForm();
13
+
14
+ const handleSubmit = (values: any) => {
15
+ console.log('Form values:', values);
16
+ };
17
+
18
+ const handleImageChange = (file: UploadFile | null) => {
19
+ form.setFieldsValue({ image: file?.originFileObj });
20
+ };
21
+
22
+ const initialValue = {
23
+ uid: '-1',
24
+ name: 'image.png',
25
+ status: 'done',
26
+ url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
27
+ }
28
+ return (
29
+ <Form form={form} onFinish={handleSubmit}>
30
+ <Form.Item name="image" valuePropName="file" initialValue={initialValue}>
31
+ <Upload {...args} onImageChange={handleImageChange} initialFileList={[initialValue]}></Upload>
32
+ </Form.Item>
33
+ <Form.Item>
34
+ <Button type="primary" htmlType="submit">
35
+ Submit
36
+ </Button>
37
+ </Form.Item>
38
+ </Form>
39
+ )
40
+ }
41
+
42
+
43
+ export const Primary = Template.bind({});
44
+ Primary.args = {
45
+ };
@@ -1,91 +1,91 @@
1
- import { Upload as UploadAntd } from 'antd';
2
- import ImgCrop from 'antd-img-crop';
3
- import type { RcFile, UploadFile, UploadProps } from 'antd/es/upload/interface';
4
- import { useEffect, useState } from 'react';
5
-
6
- interface UploadPropsExtended extends UploadProps {
7
- onImageChange?: (file: UploadFile | null) => void;
8
- initialFileList?: UploadFile[];
9
- initialImageUrl?: string;
10
- }
11
-
12
- function generateRandomString() {
13
- return Math.random().toString(36).substring(2, 14);
14
- }
15
-
16
- export const Upload = (props: UploadPropsExtended) => {
17
- const {
18
- onImageChange,
19
- initialFileList,
20
- initialImageUrl
21
- } = props;
22
- const [fileList, setFileList] = useState<UploadFile[]>(initialFileList || []);
23
-
24
- // when component mounts or initialImageUrl changes, update fileList
25
- useEffect(() => {
26
- if (initialImageUrl) {
27
- const newFile: UploadFile = {
28
- uid: generateRandomString(), // use any unique string
29
- name: initialImageUrl, // use the URL as the name
30
- status: 'done',
31
- url: initialImageUrl, // this is used for preview
32
- };
33
- setFileList((prevFileList) => [...prevFileList, newFile]);
34
- }
35
- }, [initialImageUrl]);
36
-
37
- const beforeUpload: UploadProps['beforeUpload'] = async (file: RcFile) => {
38
- const newFile: UploadFile = {
39
- uid: file.uid,
40
- name: file.name,
41
- type: file.type,
42
- size: file.size,
43
- originFileObj: file,
44
- status: 'done',
45
- };
46
-
47
- setFileList((prevFileList) => [...prevFileList, newFile]);
48
- if (onImageChange) {
49
- onImageChange(newFile);
50
- }
51
- return false;
52
- };
53
-
54
- const onChange: UploadProps['onChange'] = ({ file, fileList: newFileList }) => {
55
- if (file.status === 'removed') {
56
- setFileList(newFileList);
57
- if (onImageChange) {
58
- onImageChange(newFileList[0] || null);
59
- }
60
- }
61
- };
62
-
63
- const onPreview = async (file: UploadFile) => {
64
- let src = file.url as string;
65
- if (!src) {
66
- src = await new Promise((resolve) => {
67
- const reader = new FileReader();
68
- reader.readAsDataURL(file.originFileObj as RcFile);
69
- reader.onload = () => resolve(reader.result as string);
70
- });
71
- }
72
- const image = new Image();
73
- image.src = src;
74
- const imgWindow = window.open(src);
75
- imgWindow?.document.write(image.outerHTML);
76
- };
77
-
78
- return (
79
- <ImgCrop rotationSlider>
80
- <UploadAntd
81
- listType="picture-card"
82
- fileList={fileList}
83
- beforeUpload={beforeUpload}
84
- onChange={onChange}
85
- onPreview={onPreview}
86
- >
87
- {fileList.length < 1 && '+ Upload'}
88
- </UploadAntd>
89
- </ImgCrop>
90
- );
91
- };
1
+ import { Upload as UploadAntd } from 'antd';
2
+ import ImgCrop from 'antd-img-crop';
3
+ import type { RcFile, UploadFile, UploadProps } from 'antd/es/upload/interface';
4
+ import { useEffect, useState } from 'react';
5
+
6
+ interface UploadPropsExtended extends UploadProps {
7
+ onImageChange?: (file: UploadFile | null) => void;
8
+ initialFileList?: UploadFile[];
9
+ initialImageUrl?: string;
10
+ }
11
+
12
+ function generateRandomString() {
13
+ return Math.random().toString(36).substring(2, 14);
14
+ }
15
+
16
+ export const Upload = (props: UploadPropsExtended) => {
17
+ const {
18
+ onImageChange,
19
+ initialFileList,
20
+ initialImageUrl
21
+ } = props;
22
+ const [fileList, setFileList] = useState<UploadFile[]>(initialFileList || []);
23
+
24
+ // when component mounts or initialImageUrl changes, update fileList
25
+ useEffect(() => {
26
+ if (initialImageUrl) {
27
+ const newFile: UploadFile = {
28
+ uid: generateRandomString(), // use any unique string
29
+ name: initialImageUrl, // use the URL as the name
30
+ status: 'done',
31
+ url: initialImageUrl, // this is used for preview
32
+ };
33
+ setFileList((prevFileList) => [...prevFileList, newFile]);
34
+ }
35
+ }, [initialImageUrl]);
36
+
37
+ const beforeUpload: UploadProps['beforeUpload'] = async (file: RcFile) => {
38
+ const newFile: UploadFile = {
39
+ uid: file.uid,
40
+ name: file.name,
41
+ type: file.type,
42
+ size: file.size,
43
+ originFileObj: file,
44
+ status: 'done',
45
+ };
46
+
47
+ setFileList((prevFileList) => [...prevFileList, newFile]);
48
+ if (onImageChange) {
49
+ onImageChange(newFile);
50
+ }
51
+ return false;
52
+ };
53
+
54
+ const onChange: UploadProps['onChange'] = ({ file, fileList: newFileList }) => {
55
+ if (file.status === 'removed') {
56
+ setFileList(newFileList);
57
+ if (onImageChange) {
58
+ onImageChange(newFileList[0] || null);
59
+ }
60
+ }
61
+ };
62
+
63
+ const onPreview = async (file: UploadFile) => {
64
+ let src = file.url as string;
65
+ if (!src) {
66
+ src = await new Promise((resolve) => {
67
+ const reader = new FileReader();
68
+ reader.readAsDataURL(file.originFileObj as RcFile);
69
+ reader.onload = () => resolve(reader.result as string);
70
+ });
71
+ }
72
+ const image = new Image();
73
+ image.src = src;
74
+ const imgWindow = window.open(src);
75
+ imgWindow?.document.write(image.outerHTML);
76
+ };
77
+
78
+ return (
79
+ <ImgCrop rotationSlider>
80
+ <UploadAntd
81
+ listType="picture-card"
82
+ fileList={fileList}
83
+ beforeUpload={beforeUpload}
84
+ onChange={onChange}
85
+ onPreview={onPreview}
86
+ >
87
+ {fileList.length < 1 && '+ Upload'}
88
+ </UploadAntd>
89
+ </ImgCrop>
90
+ );
91
+ };
@@ -1,37 +1,38 @@
1
- import { Meta, Story } from "@storybook/react";
2
- import { UserInfo } from '.';
3
-
4
- export default {
5
- title: 'UserInfo',
6
- component: UserInfo,
7
- } as Meta;
8
-
9
- const Template: Story<any> = (args) => {
10
-
11
- const data = {
12
- Date: "946080000",
13
- "Store": [
14
- "ola",
15
- "adeus"
16
- ],
17
- "Team": "Delivery Team",
18
- "Supervisor": "Jane Dõe Lórd Rings",
19
- "TypeOfContract": "Omnium.APE.Services.API.Models.Users.ContractStateDto",
20
- "Nationality": "PT",
21
- "CivilStatus": "single",
22
- "IdentificationDocument": "55613145664",
23
- "NTaxpayer": "14244",
24
- "NIB": "12312331",
25
- "SocialSecurity": "123123132",
26
- "NChildren": "2",
27
- "Workload": "2 horas",
28
- "Description": "One Desccription",
29
- "Comments": "One CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne Commentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"
30
- };
31
-
32
- return <UserInfo {...args} userData={data} userName={ "Diogo Carvalho" } userCode={ "121212" } userInfoTranslationsKey={'userInfoColumn'}></UserInfo>;
33
- }
34
-
35
- export const Primary = Template.bind({});
36
- Primary.args = {
37
- };
1
+ import { Meta, Story } from "@storybook/react";
2
+ import { UserInfo } from '.';
3
+
4
+ export default {
5
+ title: 'UserInfo',
6
+ component: UserInfo,
7
+ } as Meta;
8
+
9
+ const Template: Story<any> = (args) => {
10
+
11
+ const data = {
12
+ Date: "946080000",
13
+ "Store": [
14
+ "ola",
15
+ "adeus"
16
+ ],
17
+ "Team": "Delivery Team",
18
+ "Supervisor": "Jane Dõe Lórd Rings",
19
+ "TypeOfContract": "Omnium.APE.Services.API.Models.Users.ContractStateDto",
20
+ "Nationality": "PT",
21
+ "CivilStatus": "single",
22
+ "IdentificationDocument": "55613145664",
23
+ "NTaxpayer": "14244",
24
+ "NIB": "12312331",
25
+ "SocialSecurity": "123123132",
26
+ "NChildren": "2",
27
+ "Workload": "2 horas",
28
+ "Description": "One Desccription",
29
+ "Comments": "One CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne CommentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwOne Commentsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww",
30
+ "Image": "https://omnium-user-images.s3.eu-west-1.amazonaws.com/Users/.jpg"
31
+ };
32
+
33
+ return <UserInfo {...args} userData={data} userName={ "Diogo Carvalho" } userCode={ "121212" } userImage={"https://omnium-user-images.s3.eu-west-1.amazonaws.com/Users/.jpg"} userInfoTranslationsKey={'userInfoColumn'}></UserInfo>;
34
+ }
35
+
36
+ export const Primary = Template.bind({});
37
+ Primary.args = {
38
+ };
@@ -1,62 +1,77 @@
1
- import React from 'react';
2
- import styles from './styles.module.scss';
3
- import classNames from 'classnames';
4
- import { Label } from '../Label';
5
- import { useTranslation } from 'react-i18next';
6
-
7
- export interface UserInfoProps {
8
- userData: any;
9
- userName: string;
10
- userCode: string;
11
- userInfoTranslationsKey?: string;
12
- customClass?: string;
13
- }
14
-
15
- export const UserInfo = ({ userData, customClass, userName, userCode, userInfoTranslationsKey }: UserInfoProps) => {
16
- const { t } = useTranslation();
17
-
18
- const userInfoStyle = classNames({
19
- [`${customClass}`]: customClass,
20
- }, [styles.userInfo]);
21
-
22
- return (
23
- <div className={userInfoStyle}>
24
- <Label customStyle={styles.userName}>
25
- {userName}
26
- </Label>
27
-
28
- <h3 className={styles.userCode}>
29
- {userCode}
30
- </h3>
31
-
32
- {Object.entries(userData)?.map(([key, value]: any) => {
33
- if (key === 'Store') {
34
- return (
35
- <div key={key}>
36
- <h3 className={styles.userInfoTitles}>
37
- {userInfoTranslationsKey ? t(`${userInfoTranslationsKey}.${key}`) : key}
38
- </h3>
39
- {value?.map((store: string, index: number) => (
40
- <h3 key={`${key}-${index}`} className={styles.userInfoDesc}>
41
- {store}
42
- </h3>
43
- ))}
44
- </div>
45
- );
46
- }
47
-
48
- return (
49
- <div key={key}>
50
- <h3 className={styles.userInfoTitles}>
51
- {userInfoTranslationsKey ? t(`${userInfoTranslationsKey}.${key}`) : key}
52
- </h3>
53
-
54
- <h3 className={styles.userInfoDesc}>
55
- {value as string}
56
- </h3>
57
- </div>
58
- );
59
- })}
60
- </div>
61
- );
62
- };
1
+ import React from 'react';
2
+ import styles from './styles.module.scss';
3
+ import classNames from 'classnames';
4
+ import { Label } from '../Label';
5
+ import { useTranslation } from 'react-i18next';
6
+
7
+ export interface UserInfoProps {
8
+ userData: any;
9
+ userImage: string;
10
+ userName: string;
11
+ userCode: string;
12
+ userInfoTranslationsKey?: string;
13
+ customClass?: string;
14
+ }
15
+
16
+ export const UserInfo = ({
17
+ userData,
18
+ customClass,
19
+ userImage,
20
+ userName,
21
+ userCode,
22
+ userInfoTranslationsKey,
23
+ }: UserInfoProps) => {
24
+ const { t } = useTranslation();
25
+
26
+ const userInfoStyle = classNames(
27
+ {
28
+ [`${customClass}`]: customClass,
29
+ },
30
+ [styles.userInfo]
31
+ );
32
+
33
+ return (
34
+ <div className={userInfoStyle}>
35
+ <img src={userImage} />
36
+
37
+ <Label customStyle={styles.userName}>{userName}</Label>
38
+
39
+ <h3 className={styles.userCode}>{userCode}</h3>
40
+
41
+ {Object.entries(userData)?.map(([key, value]: any) => {
42
+ if (
43
+ userInfoTranslationsKey &&
44
+ t(`${userInfoTranslationsKey}.${key}`) === `${userInfoTranslationsKey}.${key}`
45
+ ) {
46
+ // Verificar se a chave de tradução não existe
47
+ return null; // Pular a renderização desse campo
48
+ }
49
+
50
+ if (key === 'Store') {
51
+ return (
52
+ <div key={key}>
53
+ <h3 className={styles.userInfoTitles}>
54
+ {userInfoTranslationsKey ? t(`${userInfoTranslationsKey}.${key}`) : key}
55
+ </h3>
56
+ {value?.map((store: string, index: number) => (
57
+ <h3 key={`${key}-${index}`} className={styles.userInfoDesc}>
58
+ {store}
59
+ </h3>
60
+ ))}
61
+ </div>
62
+ );
63
+ }
64
+
65
+ return (
66
+ <div key={key}>
67
+ <h3 className={styles.userInfoTitles}>
68
+ {userInfoTranslationsKey ? t(`${userInfoTranslationsKey}.${key}`) : key}
69
+ </h3>
70
+
71
+ <h3 className={styles.userInfoDesc}>{value as string}</h3>
72
+ </div>
73
+ );
74
+ })}
75
+ </div>
76
+ );
77
+ };