contentoh-components-library 21.2.97 → 21.2.99

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 (111) hide show
  1. package/.env.development +0 -3
  2. package/dist/assets/fonts/{Roboto → roboto}/LICENSE.txt +0 -0
  3. package/dist/assets/fonts/{Roboto → roboto}/Roboto-Black.ttf +0 -0
  4. package/dist/assets/fonts/{Roboto → roboto}/Roboto-BlackItalic.ttf +0 -0
  5. package/dist/assets/fonts/{Roboto → roboto}/Roboto-Bold.ttf +0 -0
  6. package/dist/assets/fonts/{Roboto → roboto}/Roboto-BoldItalic.ttf +0 -0
  7. package/dist/assets/fonts/{Roboto → roboto}/Roboto-Italic.ttf +0 -0
  8. package/dist/assets/fonts/{Roboto → roboto}/Roboto-Light.ttf +0 -0
  9. package/dist/assets/fonts/{Roboto → roboto}/Roboto-LightItalic.ttf +0 -0
  10. package/dist/assets/fonts/{Roboto → roboto}/Roboto-Medium.ttf +0 -0
  11. package/dist/assets/fonts/{Roboto → roboto}/Roboto-MediumItalic.ttf +0 -0
  12. package/dist/assets/fonts/{Roboto → roboto}/Roboto-Regular.ttf +0 -0
  13. package/dist/assets/fonts/{Roboto → roboto}/Roboto-Thin.ttf +0 -0
  14. package/dist/assets/fonts/{Roboto → roboto}/Roboto-ThinItalic.ttf +0 -0
  15. package/dist/components/atoms/CheckBox/index.js +5 -2
  16. package/dist/components/molecules/CustomSelect/CustomSelect.stories.js +22 -21
  17. package/dist/components/molecules/CustomSelect/SelectItem.js +1 -10
  18. package/dist/components/molecules/HeaderTop/index.js +5 -10
  19. package/dist/components/molecules/HeaderTop/styles.js +1 -1
  20. package/dist/components/organisms/OrderDetail/OrderDetail.stories.js +3 -2
  21. package/dist/components/organisms/OrderDetail/index.js +9 -3
  22. package/dist/components/organisms/OrderDetail/styles.js +1 -1
  23. package/dist/components/organisms/OrderDetail/utils/Table/index.js +2 -1
  24. package/dist/global-files/fonts.css +0 -12
  25. package/dist/global-files/variables.js +0 -2
  26. package/dist/index.js +46 -241
  27. package/package.json +1 -12
  28. package/src/components/atoms/CheckBox/index.js +9 -1
  29. package/src/components/molecules/CustomSelect/CustomSelect.stories.js +12 -20
  30. package/src/components/molecules/CustomSelect/SelectItem.js +0 -7
  31. package/src/components/molecules/HeaderTop/index.js +6 -11
  32. package/src/components/molecules/HeaderTop/styles.js +0 -4
  33. package/src/components/organisms/OrderDetail/OrderDetail.stories.js +2 -1
  34. package/src/components/organisms/OrderDetail/index.js +4 -1
  35. package/src/components/organisms/OrderDetail/styles.js +1 -0
  36. package/src/components/organisms/OrderDetail/utils/Table/index.js +1 -0
  37. package/src/global-files/fonts.css +0 -12
  38. package/src/global-files/variables.js +0 -2
  39. package/src/index.js +0 -15
  40. package/src/assets/images/customSelect/starIcon.svg +0 -14
  41. package/src/assets/images/defaultImages/Spinner.gif +0 -0
  42. package/src/assets/images/defaultImages/notFound.svg +0 -124
  43. package/src/components/atoms/ButtonFileChooser/ButtonFileChooser.stories.js +0 -47
  44. package/src/components/atoms/ButtonFileChooser/index.js +0 -69
  45. package/src/components/atoms/ButtonFileChooser/styles.js +0 -4
  46. package/src/components/atoms/ButtonV2/ButtonV2.stories.js +0 -51
  47. package/src/components/atoms/ButtonV2/index.js +0 -79
  48. package/src/components/atoms/ButtonV2/styles.js +0 -195
  49. package/src/components/atoms/CustomIcon/CustomIcon.stories.js +0 -36
  50. package/src/components/atoms/CustomIcon/index.js +0 -41
  51. package/src/components/atoms/CustomIcon/styles.js +0 -85
  52. package/src/components/atoms/IconFile/IconFile.stories.js +0 -35
  53. package/src/components/atoms/IconFile/index.js +0 -119
  54. package/src/components/atoms/IconFile/styles.js +0 -67
  55. package/src/components/atoms/Image/Image.stories.js +0 -51
  56. package/src/components/atoms/Image/index.js +0 -55
  57. package/src/components/atoms/Image/styles.js +0 -34
  58. package/src/components/atoms/ImageLink/ImageLink.stories.js +0 -43
  59. package/src/components/atoms/ImageLink/index.js +0 -57
  60. package/src/components/atoms/ImageLink/styles.js +0 -30
  61. package/src/components/atoms/ImagePreview/ImagePreview.stories.js +0 -52
  62. package/src/components/atoms/ImagePreview/index.js +0 -191
  63. package/src/components/atoms/ImagePreview/styles.js +0 -77
  64. package/src/components/atoms/InputText/InputText.stories.js +0 -39
  65. package/src/components/atoms/InputText/index.js +0 -61
  66. package/src/components/atoms/InputText/styles.js +0 -89
  67. package/src/components/atoms/NotFound/NotFound.stories.js +0 -19
  68. package/src/components/atoms/NotFound/index.js +0 -52
  69. package/src/components/atoms/NotFound/styles.js +0 -55
  70. package/src/components/atoms/SelectItemV2/SelectItemV2.stories.js +0 -26
  71. package/src/components/atoms/SelectItemV2/index.js +0 -45
  72. package/src/components/atoms/SelectItemV2/styles.js +0 -55
  73. package/src/components/atoms/Tooltip/Tooltip.stories.js +0 -51
  74. package/src/components/atoms/Tooltip/index.js +0 -59
  75. package/src/components/atoms/Tooltip/styles.js +0 -42
  76. package/src/components/molecules/ButtonDownloadFile/DownloadFile.stories.js +0 -54
  77. package/src/components/molecules/ButtonDownloadFile/index.js +0 -111
  78. package/src/components/molecules/ButtonDownloadFile/styles.js +0 -66
  79. package/src/components/molecules/ImageTooltip/ImageTooltip.stories.js +0 -46
  80. package/src/components/molecules/ImageTooltip/index.js +0 -62
  81. package/src/components/molecules/ImageTooltip/styles.js +0 -18
  82. package/src/components/molecules/SelectV2/SelectV2.stories.js +0 -114
  83. package/src/components/molecules/SelectV2/index.js +0 -332
  84. package/src/components/molecules/SelectV2/styles.js +0 -100
  85. package/src/components/organisms/Chat/Chat.stories.js +0 -199
  86. package/src/components/organisms/Chat/ChatLists/ChatLists.stories.js +0 -65
  87. package/src/components/organisms/Chat/ChatLists/Rotoplas.jpeg +0 -0
  88. package/src/components/organisms/Chat/ChatLists/THD.png +0 -0
  89. package/src/components/organisms/Chat/ChatLists/index.js +0 -141
  90. package/src/components/organisms/Chat/ChatLists/styles.js +0 -162
  91. package/src/components/organisms/Chat/ContainerItems/ContainerItems.stories.js +0 -142
  92. package/src/components/organisms/Chat/ContainerItems/index.js +0 -549
  93. package/src/components/organisms/Chat/ContainerItems/styles.js +0 -328
  94. package/src/components/organisms/Chat/ContentChat/ContentChat.stories.js +0 -102
  95. package/src/components/organisms/Chat/ContentChat/Rotoplas.jpeg +0 -0
  96. package/src/components/organisms/Chat/ContentChat/THD.png +0 -0
  97. package/src/components/organisms/Chat/ContentChat/index.js +0 -900
  98. package/src/components/organisms/Chat/ContentChat/styles.js +0 -41
  99. package/src/components/organisms/Chat/Footer/Footer.stories.js +0 -22
  100. package/src/components/organisms/Chat/Footer/index.js +0 -669
  101. package/src/components/organisms/Chat/Footer/styles.js +0 -286
  102. package/src/components/organisms/Chat/Header/Header.stories.js +0 -66
  103. package/src/components/organisms/Chat/Header/index.js +0 -94
  104. package/src/components/organisms/Chat/Header/styles.js +0 -49
  105. package/src/components/organisms/Chat/index.js +0 -294
  106. package/src/components/organisms/Chat/styles.js +0 -42
  107. package/src/components/organisms/Modal/Modal.stories.js +0 -55
  108. package/src/components/organisms/Modal/index.js +0 -97
  109. package/src/components/organisms/Modal/styles.js +0 -103
  110. package/src/global-files/handle_http.js +0 -231
  111. package/src/global-files/utils.js +0 -300
@@ -1,195 +0,0 @@
1
- import styled from "styled-components";
2
- import { GlobalColors, FontFamily } from "../../../global-files/variables";
3
-
4
- export const Container = styled.div`
5
- width: fit-content;
6
- padding: 0px;
7
- cursor: ${({ disabled, isLoading }) =>
8
- disabled || isLoading ? "not-allowed" : "pointer"};
9
- border-radius: ${({ label, borderType, transparent }) => {
10
- return borderType?.toLowerCase() === "rectangle"
11
- ? "6px"
12
- : borderType?.toLowerCase() === "oval"
13
- ? "17px"
14
- : borderType?.toLowerCase() === "circle"
15
- ? "50%"
16
- : transparent
17
- ? "6px"
18
- : label && label?.trim() !== ""
19
- ? "17px"
20
- : "6px"; // default rectangle
21
- }};
22
- border: none;
23
-
24
- .button {
25
- --size: ${({ size }) => (size ? size : "13")}px;
26
- width: 100%;
27
- min-width: min-content;
28
- cursor: inherit;
29
- display: flex;
30
- flex-direction: ${({ iconPosition }) =>
31
- iconPosition === "start" ? "row" : "row-reverse"};
32
- gap: 7px;
33
- align-items: center;
34
- justify-content: center;
35
- padding: ${({ label, borderType }) => {
36
- return label && label?.trim() !== ""
37
- ? "5px 15px" // button con label
38
- : "5px";
39
- }};
40
- border-radius: inherit;
41
- border: ${({ label, borderType, transparent }) => {
42
- return ["rectangle", "circle", "oval"].includes(borderType?.toLowerCase())
43
- ? "1px solid black"
44
- : transparent
45
- ? "none"
46
- : label && label?.trim() !== ""
47
- ? "1px solid black" // button con label
48
- : "none"; // button icon sin borde
49
- }};
50
- font-family: ${FontFamily.RobotoMedium}, sans-serif;
51
- font-size: var(--size);
52
- line-height: 1.2;
53
- text-transform: none;
54
-
55
- // tipos de botones fill
56
- &.fill {
57
- &.white {
58
- background-color: white;
59
- color: #e33aa9;
60
- border-color: #e33aa9;
61
- &:hover {
62
- background-color: #f4f4f4;
63
- }
64
- }
65
- &.whiteS2 {
66
- background-color: white;
67
- color: #7b7979;
68
- border-color: #f0f0f0;
69
- &:hover {
70
- background-color: #f4f4f4;
71
- }
72
- }
73
- &.whiteS3 {
74
- background-color: white;
75
- color: #262626;
76
- border-color: #f0f0f0;
77
- &:hover {
78
- background-color: #f4f4f4;
79
- }
80
- }
81
- &.pink {
82
- background-color: #e33aa9;
83
- color: white;
84
- border-color: #e33aa9;
85
- &:hover {
86
- background-color: #b42983;
87
- }
88
- }
89
- &.gray {
90
- background-color: #e8e5e5;
91
- color: #262626;
92
- border-color: #7b7979;
93
- .icon,
94
- .iconLoading {
95
- color: #7b7979;
96
- }
97
- &:hover {
98
- background-color: #d6d3d3;
99
- }
100
- }
101
- &.purple {
102
- background-color: #f7f7fc;
103
- color: #8a6caa;
104
- border-color: #8a6caa;
105
- &:hover {
106
- background-color: #e0e0f1;
107
- }
108
- }
109
- }
110
-
111
- // tipos de botones transparent
112
- &.transparent {
113
- &:hover {
114
- background-color: transparent;
115
- }
116
- &.white {
117
- color: white;
118
- border-color: #e33aa9;
119
- &:hover {
120
- color: #d6d4d4;
121
- }
122
- }
123
- &.pink {
124
- color: #e33aa9;
125
- border-color: #e33aa9;
126
- &:hover {
127
- color: #b42983;
128
- }
129
- }
130
- &.gray {
131
- color: #262626;
132
- border-color: #7b7979;
133
- .icon,
134
- .iconLoading {
135
- color: #7b7979;
136
- transition: inherit;
137
- }
138
- &:hover {
139
- color: #7b7979;
140
- .icon,
141
- .iconLoading {
142
- color: #bdbbbb;
143
- }
144
- }
145
- }
146
- &.purple {
147
- color: #8a6caa;
148
- border-color: #8a6caa;
149
- &:hover {
150
- color: #714f95;
151
- }
152
- }
153
- &.black {
154
- color: #262626;
155
- border-color: #262626;
156
- &:hover {
157
- color: #7b7979;
158
- }
159
- }
160
- }
161
-
162
- .icon,
163
- .iconLoading {
164
- display: grid;
165
- place-items: center;
166
- color: inherit;
167
- font-size: ${({ label }) => {
168
- return label && label?.trim() !== ""
169
- ? "calc(var(--size) + 3px)" // button with label
170
- : "var(--size)"; // button icon
171
- }};
172
- }
173
- .iconLoading {
174
- font-size: ${({ icon }) => !icon && "var(--size)"};
175
- }
176
-
177
- // mismo estilo desabilitado para cualquier tipo de boton
178
- &:disabled {
179
- background-color: #fcebf7 !important;
180
- color: #7b7979 !important;
181
- border-color: #7b7979 !important;
182
-
183
- .icon {
184
- color: #9e9c9c !important;
185
- }
186
- .iconLoading {
187
- color: #9e2674 !important;
188
- }
189
-
190
- &:hover {
191
- background-color: #fcebf7 !important;
192
- }
193
- }
194
- }
195
- `;
@@ -1,36 +0,0 @@
1
- import { CustomIcon } from "./index";
2
- import { faCamera as iconCamera } from "@fortawesome/free-solid-svg-icons";
3
-
4
- export default {
5
- title: "Components/atoms/CustomIcon",
6
- component: CustomIcon,
7
- argTypes: {
8
- type: {
9
- options: [
10
- undefined,
11
- "white",
12
- "whiteS2",
13
- "pink",
14
- "gray",
15
- "purple",
16
- "black",
17
- ],
18
- control: { type: "select" },
19
- },
20
- borderType: {
21
- options: [undefined, "rectangle", "circle"],
22
- control: { type: "select" },
23
- },
24
- },
25
- };
26
-
27
- const Template = (args) => <CustomIcon {...args} />;
28
-
29
- export const ButtonTest = Template.bind({});
30
- ButtonTest.args = {
31
- type: undefined,
32
- transparent: false,
33
- borderType: undefined,
34
- size: "20",
35
- icon: iconCamera,
36
- };
@@ -1,41 +0,0 @@
1
- import { Container } from "./styles";
2
- import { FontAwesomeIcon as Icon } from "@fortawesome/react-fontawesome";
3
- import React from "react";
4
-
5
- export const CustomIcon = (props) => {
6
- const {
7
- id,
8
- key,
9
- className,
10
- type, // white | whiteS2 | pink | gray || purple | black => (default white)
11
- transparent, // boolean
12
- size, // number ... default (13)
13
- borderType, // rectangle || circle (default)
14
- icon, // icon fontawesome
15
- } = props;
16
-
17
- return (
18
- <>
19
- {icon ? (
20
- <Container
21
- id={id}
22
- key={key}
23
- className={
24
- "container-icon " +
25
- (["white", "whiteS2", "pink", "gray", "purple", "black"].includes(
26
- type
27
- )
28
- ? type
29
- : "white") +
30
- (transparent ? " transparent " : " fill ") +
31
- className
32
- }
33
- borderType={borderType}
34
- size={size}
35
- >
36
- <Icon icon={icon} />
37
- </Container>
38
- ) : null}
39
- </>
40
- );
41
- };
@@ -1,85 +0,0 @@
1
- import styled from "styled-components";
2
- import { GlobalColors, FontFamily } from "../../../global-files/variables";
3
-
4
- export const Container = styled.i`
5
- width: fit-content;
6
- min-width: min-content;
7
- cursor: default;
8
- display: grid;
9
- place-items: center;
10
- font-size: ${({ size }) => (size ? size : "13")}px;
11
- border-radius: ${({ borderType }) => {
12
- return borderType?.toLowerCase() === "rectangle"
13
- ? "6px"
14
- : borderType?.toLowerCase() === "circle"
15
- ? "50%"
16
- : "0px";
17
- }};
18
- padding: ${({ borderType }) => {
19
- return ["rectangle", "circle"].includes(borderType?.toLowerCase())
20
- ? "5px"
21
- : "0px";
22
- }};
23
- border: ${({ borderType, transparent }) => {
24
- return ["rectangle", "circle"].includes(borderType?.toLowerCase())
25
- ? "1px solid black"
26
- : "none";
27
- }};
28
-
29
- // tipos de iconos fill
30
- &.fill {
31
- &.white {
32
- background-color: white;
33
- color: #e33aa9;
34
- border-color: #e33aa9;
35
- }
36
- &.whiteS2 {
37
- background-color: white;
38
- color: #7b7979;
39
- border-color: #f0f0f0;
40
- }
41
- &.pink {
42
- background-color: #e33aa9;
43
- color: white;
44
- border-color: #e33aa9;
45
- }
46
- &.gray {
47
- background-color: #e8e5e5;
48
- border-color: #7b7979;
49
- color: #7b7979;
50
- }
51
- &.purple {
52
- background-color: #f7f7fc;
53
- color: #8a6caa;
54
- border-color: #8a6caa;
55
- }
56
- }
57
-
58
- // tipos de iconos transparent
59
- &.transparent {
60
- &.white {
61
- color: white;
62
- border-color: #e33aa9;
63
- }
64
- &.whiteS2 {
65
- color: #7b7979;
66
- border-color: #f0f0f0;
67
- }
68
- &.pink {
69
- color: #e33aa9;
70
- border-color: #e33aa9;
71
- }
72
- &.gray {
73
- color: #7b7979;
74
- border-color: #7b7979;
75
- }
76
- &.purple {
77
- color: #8a6caa;
78
- border-color: #8a6caa;
79
- }
80
- &.black {
81
- color: #262626;
82
- border-color: #262626;
83
- }
84
- }
85
- `;
@@ -1,35 +0,0 @@
1
- import { IconFile } from "./index";
2
-
3
- export default {
4
- title: "Components/atoms/IconFile",
5
- component: IconFile,
6
- argTypes: {
7
- type: {
8
- options: [
9
- undefined,
10
- "white",
11
- "whiteS2",
12
- "pink",
13
- "gray",
14
- "purple",
15
- "black",
16
- ],
17
- control: { type: "select" },
18
- },
19
- borderType: {
20
- options: [undefined, "rectangle", "circle"],
21
- control: { type: "select" },
22
- },
23
- },
24
- };
25
-
26
- const Template = (args) => <IconFile {...args} />;
27
-
28
- export const ButtonTest = Template.bind({});
29
- ButtonTest.args = {
30
- type: undefined,
31
- transparent: false,
32
- borderType: undefined,
33
- size: "100",
34
- ext: "doc",
35
- };
@@ -1,119 +0,0 @@
1
- import { Container } from "./styles";
2
- import {
3
- faFileExcel as IconFileExcel,
4
- faFileWord as IconFileWord,
5
- faFilePdf as IconFilePdf,
6
- faFileCsv as IconFileCsv,
7
- faFileImage as IconFileImg,
8
- faFilePowerpoint as IconFilePowerPoint,
9
- faFileZipper as IconFileZip,
10
- faFileCode as IconFileCode,
11
- faFileAudio as IconFileAudio,
12
- faFileLines as IconFileDefault,
13
- faFileVideo as IconFileVideo,
14
- } from "@fortawesome/free-solid-svg-icons";
15
- import React, { useRef } from "react";
16
- import { CustomIcon } from "../CustomIcon";
17
-
18
- export const IconFile = (props) => {
19
- const {
20
- id,
21
- key,
22
- className,
23
- type, // white | whiteS2 | pink | gray | purple | black => (default -> white)
24
- transparent, // boolean
25
- size, // number ... default (13)
26
- borderType, // rectangle || circle || (cualquier otro valor -> no borde)
27
- ext, // extension del file
28
- } = props;
29
- const extensions = {
30
- // file word
31
- docx: { icon: IconFileWord, type: "word" },
32
- docm: { icon: IconFileWord, type: "word" },
33
- doc: { icon: IconFileWord, type: "word" },
34
- docs: { icon: IconFileWord, type: "word" },
35
-
36
- // file excel
37
- xls: { icon: IconFileExcel, type: "excel" },
38
- xlsm: { icon: IconFileExcel, type: "excel" },
39
- xlsx: { icon: IconFileExcel, type: "excel" },
40
- tsv: { icon: IconFileExcel, type: "excel" },
41
- // file csv
42
- csv: { icon: IconFileCsv, type: "csv" },
43
- // file image
44
- svg: { icon: IconFileImg, type: "image" },
45
- gif: { icon: IconFileImg, type: "image" },
46
- // file pdf
47
- pdf: { icon: IconFilePdf, type: "pdf" },
48
- // file power point
49
- pot: { icon: IconFilePowerPoint, type: "powerPoint" },
50
- potm: { icon: IconFilePowerPoint, type: "powerPoint" },
51
- potx: { icon: IconFilePowerPoint, type: "powerPoint" },
52
- pps: { icon: IconFilePowerPoint, type: "powerPoint" },
53
- ppsm: { icon: IconFilePowerPoint, type: "powerPoint" },
54
- ppsx: { icon: IconFilePowerPoint, type: "powerPoint" },
55
- ppt: { icon: IconFilePowerPoint, type: "powerPoint" },
56
- pptm: { icon: IconFilePowerPoint, type: "powerPoint" },
57
- pptx: { icon: IconFilePowerPoint, type: "powerPoint" },
58
-
59
- // file zip
60
- rar: { icon: IconFileZip, type: "zip" },
61
- zip: { icon: IconFileZip, type: "zip" },
62
- tar: { icon: IconFileZip, type: "zip" },
63
-
64
- // file code
65
- xml: { icon: IconFileCode, type: "code" },
66
- htm: { icon: IconFileCode, type: "code" },
67
- html: { icon: IconFileCode, type: "code" },
68
- css: { icon: IconFileCode, type: "code" },
69
- js: { icon: IconFileCode, type: "code" },
70
- jsx: { icon: IconFileCode, type: "code" },
71
- ts: { icon: IconFileCode, type: "code" },
72
- tsx: { icon: IconFileCode, type: "code" },
73
- cpp: { icon: IconFileCode, type: "code" },
74
- c: { icon: IconFileCode, type: "code" },
75
- java: { icon: IconFileCode, type: "code" },
76
- php: { icon: IconFileCode, type: "code" },
77
- json: { icon: IconFileCode, type: "code" },
78
- sql: { icon: IconFileCode, type: "code" },
79
-
80
- // file video
81
- avi: { icon: IconFileVideo, type: "video" },
82
- mp4: { icon: IconFileVideo, type: "video" },
83
- mpeg: { icon: IconFileVideo, type: "video" },
84
- mpg: { icon: IconFileVideo, type: "video" },
85
- wmv: { icon: IconFileVideo, type: "video" },
86
-
87
- // file audio
88
- m4a: { icon: IconFileAudio, type: "audio" },
89
- mp3: { icon: IconFileAudio, type: "audio" },
90
- wav: { icon: IconFileAudio, type: "audio" },
91
- wma: { icon: IconFileAudio, type: "audio" },
92
- };
93
- const ref = useRef();
94
-
95
- return (
96
- <>
97
- <Container
98
- className={
99
- className +
100
- (!type && extensions[ext]?.type
101
- ? " icon-" + extensions[ext].type
102
- : undefined)
103
- }
104
- borderType={borderType}
105
- >
106
- <CustomIcon
107
- id={id}
108
- key={key}
109
- className="icon"
110
- type={type}
111
- transparent={transparent}
112
- borderType={borderType}
113
- size={size}
114
- icon={extensions[ext]?.icon ?? IconFileDefault}
115
- />
116
- </Container>
117
- </>
118
- );
119
- };
@@ -1,67 +0,0 @@
1
- import styled from "styled-components";
2
- import { GlobalColors, FontFamily } from "../../../global-files/variables";
3
-
4
- export const Container = styled.div`
5
- width: fit-content;
6
- min-width: min-content;
7
- min-height: min-content;
8
- overflow: hidden;
9
- cursor: default;
10
- display: grid;
11
- place-items: center;
12
- padding: 0px;
13
- border-radius: ${({ borderType }) => {
14
- return borderType?.toLowerCase() === "rectangle"
15
- ? "6px"
16
- : borderType?.toLowerCase() === "circle"
17
- ? "50%"
18
- : "0px";
19
- }};
20
- border: none;
21
-
22
- // colores de acuerdo al tipo de icono
23
- &.icon-word .icon {
24
- color: #1f3780;
25
- border-color: #1f3780;
26
- }
27
- &.icon-excel .icon {
28
- color: #2d5639;
29
- border-color: #2d5639;
30
- }
31
- &.icon-csv .icon {
32
- color: #6b8e73;
33
- border-color: #6b8e73;
34
- }
35
- &.icon-image .icon {
36
- color: #ca7f4d;
37
- border-color: #ca7f4d;
38
- }
39
- &.icon-pdf .icon {
40
- color: #951a1a;
41
- border-color: #951a1a;
42
- }
43
- &.icon-powerPoint .icon {
44
- color: #ba4f19;
45
- border-color: #ba4f19;
46
- }
47
- &.icon-zip .icon {
48
- color: #b8950c;
49
- border-color: #b8950c;
50
- }
51
- &.icon-code .icon {
52
- color: #1c778e;
53
- border-color: #1c778e;
54
- }
55
- &.icon-video .icon {
56
- color: #a15bb1;
57
- border-color: #a15bb1;
58
- }
59
- &.icon-audio .icon {
60
- color: #3090e9;
61
- border-color: #3090e9;
62
- }
63
- &.icon-default .icon {
64
- color: #5e6265;
65
- border-color: #5e6265;
66
- }
67
- `;
@@ -1,51 +0,0 @@
1
- import { Image } from "./index";
2
-
3
- export default {
4
- title: "Components/atoms/Image",
5
- component: Image,
6
- argTypes: {
7
- borderType: {
8
- options: [undefined, "rectangle", "circle"],
9
- control: { type: "select" },
10
- },
11
- },
12
- };
13
-
14
- const Template = (args) => <Image {...args} />;
15
-
16
- const keyS3_test =
17
- "84300/1/chat/playa-213f791b-d890-48e1-be19-28bf5a95d517.jpeg";
18
- const srcTest = `https://content-management-profile.s3.amazonaws.com/id-59/59.png`;
19
- export const ImageTest = Template.bind({});
20
- ImageTest.args = {
21
- width: "200px",
22
- sizeLoading: "50",
23
- colorLoading: "#bbbbbb",
24
- src: srcTest,
25
- componentDefault: <label> test error </label>,
26
- borderType: undefined,
27
- };
28
-
29
- const keyS3_OK =
30
- "84300/1/chat/f6579ed5-16e5-48d8-ace5-6be8e8e68f53-38896acf-9179-4686-9088-9784df624ab8.png";
31
- const srcOK = `https://content-management-images.s3.amazonaws.com/${keyS3_OK}`;
32
- export const ImageOK = Template.bind({});
33
- ImageOK.args = {
34
- width: "250px",
35
- sizeLoading: "40",
36
- src: srcOK,
37
- componentDefault: <label> img no cargada </label>,
38
- borderType: undefined,
39
- };
40
-
41
- const keyS3_ERROR =
42
- "84300/1/chat/21dba1da-3c60-42c4-97bd-033664808256-fb19ff57-b91c-4ef2-ba2a-d857b55fb33b.svg";
43
- const srcERROR = `https://content-management-images.s3.amazonaws.com/${keyS3_ERROR}`;
44
- export const ImageERROR = Template.bind({});
45
- ImageERROR.args = {
46
- width: "300px",
47
- sizeLoading: "60",
48
- src: srcERROR,
49
- componentDefault: <label> ERROR al cargar </label>,
50
- borderType: undefined,
51
- };
@@ -1,55 +0,0 @@
1
- import { Container, ContainerLoading, Img } from "./styles";
2
- import { FontAwesomeIcon as Icon } from "@fortawesome/react-fontawesome";
3
- import { faSpinner as iconLoading } from "@fortawesome/free-solid-svg-icons";
4
- import { useState, useEffect } from "react";
5
-
6
- export const Image = (props) => {
7
- const {
8
- className, // string
9
- width, // string
10
- sizeLoading, // number
11
- colorLoading, // string
12
- classNameLoading, // string
13
- src, // imagen a cargar (string)
14
- componentDefault, // componente a mostrar en caso de que no cargue src (JSX)
15
- classNameImg, // string
16
- borderType, // "rectangle" | "circle" -> por default none
17
- } = props;
18
- const [imgLoad, setImgLoad] = useState();
19
- const [loading, setLoading] = useState(false);
20
-
21
- /* solo para hacer pruebas en modo dev
22
- useEffect(() => {
23
- setTimeout(() => {
24
- setLoading(false);
25
- }, 5000);
26
- }, []); */
27
-
28
- return (
29
- <Container className={className} width={width} borderType={borderType}>
30
- {src && (imgLoad === undefined || loading) && (
31
- <ContainerLoading
32
- className={classNameLoading}
33
- sizeLoading={sizeLoading}
34
- colorLoading={colorLoading}
35
- >
36
- <Icon pulse icon={iconLoading} />
37
- </ContainerLoading>
38
- )}
39
-
40
- {(!src || (imgLoad === false && !loading)) && componentDefault}
41
-
42
- <Img
43
- className={classNameImg}
44
- src={src}
45
- onLoad={(event) => {
46
- setImgLoad(true);
47
- }}
48
- onError={(event) => {
49
- setImgLoad(false);
50
- }}
51
- show={imgLoad === true && !loading}
52
- />
53
- </Container>
54
- );
55
- };