contentoh-components-library 21.3.12 → 21.3.13

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 (117) hide show
  1. package/.env.development +0 -5
  2. package/dist/assets/images/generalButton/closeIcon.svg +2 -2
  3. package/dist/components/atoms/ProgressBar/index.js +6 -36
  4. package/dist/components/atoms/ProgressBar/styles.js +3 -11
  5. package/dist/components/molecules/CustomSelect/CustomSelect.stories.js +22 -21
  6. package/dist/components/molecules/CustomSelect/SelectItem.js +1 -10
  7. package/dist/components/molecules/HeaderTop/index.js +6 -23
  8. package/dist/components/molecules/HeaderTop/styles.js +1 -1
  9. package/dist/components/molecules/ProductNameHeader/index.js +4 -6
  10. package/dist/components/organisms/FullProductNameHeader/index.js +0 -1
  11. package/dist/components/pages/Dashboard/index.js +21 -13
  12. package/dist/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +50 -65
  13. package/dist/components/pages/ProviderProductEdition/index.js +11 -15
  14. package/dist/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +86 -60
  15. package/dist/components/pages/RetailerProductEdition/index.js +12 -13
  16. package/dist/global-files/fonts.css +0 -6
  17. package/dist/global-files/variables.js +0 -2
  18. package/dist/index.js +46 -267
  19. package/package.json +1 -12
  20. package/src/assets/images/generalButton/closeIcon.svg +2 -2
  21. package/src/components/atoms/ProgressBar/index.js +5 -40
  22. package/src/components/atoms/ProgressBar/styles.js +0 -24
  23. package/src/components/molecules/CustomSelect/CustomSelect.stories.js +12 -20
  24. package/src/components/molecules/CustomSelect/SelectItem.js +0 -7
  25. package/src/components/molecules/HeaderTop/index.js +8 -29
  26. package/src/components/molecules/HeaderTop/styles.js +0 -4
  27. package/src/components/molecules/ProductNameHeader/index.js +2 -7
  28. package/src/components/organisms/FullProductNameHeader/index.js +0 -1
  29. package/src/components/pages/Dashboard/index.js +37 -31
  30. package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +49 -67
  31. package/src/components/pages/ProviderProductEdition/index.js +7 -16
  32. package/src/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +85 -62
  33. package/src/components/pages/RetailerProductEdition/index.js +10 -12
  34. package/src/global-files/fonts.css +0 -6
  35. package/src/global-files/variables.js +0 -2
  36. package/src/index.js +0 -17
  37. package/src/assets/images/customSelect/starIcon.svg +0 -14
  38. package/src/assets/images/defaultImages/Spinner.gif +0 -0
  39. package/src/assets/images/defaultImages/notFound.svg +0 -124
  40. package/src/components/atoms/ButtonFileChooser/ButtonFileChooser.stories.js +0 -47
  41. package/src/components/atoms/ButtonFileChooser/index.js +0 -68
  42. package/src/components/atoms/ButtonFileChooser/styles.js +0 -4
  43. package/src/components/atoms/ButtonV2/ButtonV2.stories.js +0 -53
  44. package/src/components/atoms/ButtonV2/index.js +0 -85
  45. package/src/components/atoms/ButtonV2/styles.js +0 -217
  46. package/src/components/atoms/CustomIcon/CustomIcon.stories.js +0 -36
  47. package/src/components/atoms/CustomIcon/index.js +0 -41
  48. package/src/components/atoms/CustomIcon/styles.js +0 -85
  49. package/src/components/atoms/IconFile/IconFile.stories.js +0 -35
  50. package/src/components/atoms/IconFile/index.js +0 -119
  51. package/src/components/atoms/IconFile/styles.js +0 -67
  52. package/src/components/atoms/Image/Image.stories.js +0 -51
  53. package/src/components/atoms/Image/index.js +0 -55
  54. package/src/components/atoms/Image/styles.js +0 -34
  55. package/src/components/atoms/ImageLink/ImageLink.stories.js +0 -43
  56. package/src/components/atoms/ImageLink/index.js +0 -57
  57. package/src/components/atoms/ImageLink/styles.js +0 -30
  58. package/src/components/atoms/ImagePreview/ImagePreview.stories.js +0 -52
  59. package/src/components/atoms/ImagePreview/index.js +0 -178
  60. package/src/components/atoms/ImagePreview/styles.js +0 -77
  61. package/src/components/atoms/InputText/InputText.stories.js +0 -39
  62. package/src/components/atoms/InputText/index.js +0 -61
  63. package/src/components/atoms/InputText/styles.js +0 -89
  64. package/src/components/atoms/NotFound/NotFound.stories.js +0 -19
  65. package/src/components/atoms/NotFound/index.js +0 -52
  66. package/src/components/atoms/NotFound/styles.js +0 -55
  67. package/src/components/atoms/SelectItemV2/SelectItemV2.stories.js +0 -26
  68. package/src/components/atoms/SelectItemV2/index.js +0 -61
  69. package/src/components/atoms/SelectItemV2/styles.js +0 -90
  70. package/src/components/atoms/Tooltip/Tooltip.stories.js +0 -51
  71. package/src/components/atoms/Tooltip/index.js +0 -59
  72. package/src/components/atoms/Tooltip/styles.js +0 -42
  73. package/src/components/molecules/ButtonDownloadFile/DownloadFile.stories.js +0 -54
  74. package/src/components/molecules/ButtonDownloadFile/index.js +0 -109
  75. package/src/components/molecules/ButtonDownloadFile/styles.js +0 -66
  76. package/src/components/molecules/Dropdown/Dropdown.stories.js +0 -103
  77. package/src/components/molecules/Dropdown/index.js +0 -150
  78. package/src/components/molecules/Dropdown/styles.js +0 -75
  79. package/src/components/molecules/ImageTooltip/ImageTooltip.stories.js +0 -68
  80. package/src/components/molecules/ImageTooltip/index.js +0 -63
  81. package/src/components/molecules/ImageTooltip/styles.js +0 -18
  82. package/src/components/molecules/SelectV2/SelectV2.stories.js +0 -115
  83. package/src/components/molecules/SelectV2/index.js +0 -357
  84. package/src/components/molecules/SelectV2/styles.js +0 -105
  85. package/src/components/molecules/SelectV2/test.js +0 -61
  86. package/src/components/molecules/SelectV2/test.stories.js +0 -10
  87. package/src/components/organisms/Chat/Chat.stories.js +0 -147
  88. package/src/components/organisms/Chat/ChatLists/ChatLists.stories.js +0 -65
  89. package/src/components/organisms/Chat/ChatLists/Rotoplas.jpeg +0 -0
  90. package/src/components/organisms/Chat/ChatLists/THD.png +0 -0
  91. package/src/components/organisms/Chat/ChatLists/index.js +0 -141
  92. package/src/components/organisms/Chat/ChatLists/styles.js +0 -162
  93. package/src/components/organisms/Chat/ContainerItems/ContainerItems.stories.js +0 -142
  94. package/src/components/organisms/Chat/ContainerItems/index.js +0 -512
  95. package/src/components/organisms/Chat/ContainerItems/styles.js +0 -328
  96. package/src/components/organisms/Chat/ContentChat/ContentChat.stories.js +0 -102
  97. package/src/components/organisms/Chat/ContentChat/Rotoplas.jpeg +0 -0
  98. package/src/components/organisms/Chat/ContentChat/THD.png +0 -0
  99. package/src/components/organisms/Chat/ContentChat/index.js +0 -897
  100. package/src/components/organisms/Chat/ContentChat/styles.js +0 -41
  101. package/src/components/organisms/Chat/Footer/Footer.stories.js +0 -22
  102. package/src/components/organisms/Chat/Footer/index.js +0 -661
  103. package/src/components/organisms/Chat/Footer/styles.js +0 -286
  104. package/src/components/organisms/Chat/Header/Header.stories.js +0 -66
  105. package/src/components/organisms/Chat/Header/index.js +0 -94
  106. package/src/components/organisms/Chat/Header/styles.js +0 -49
  107. package/src/components/organisms/Chat/index.js +0 -235
  108. package/src/components/organisms/Chat/styles.js +0 -42
  109. package/src/components/organisms/Modal/Modal.stories.js +0 -55
  110. package/src/components/organisms/Modal/index.js +0 -97
  111. package/src/components/organisms/Modal/styles.js +0 -103
  112. package/src/components/organisms/RangeCalendar/RangeCalendar.stories.js +0 -16
  113. package/src/components/organisms/RangeCalendar/index.js +0 -121
  114. package/src/components/organisms/RangeCalendar/styles.js +0 -883
  115. package/src/global-files/handle_http.js +0 -225
  116. package/src/global-files/handle_userTech.js +0 -7
  117. package/src/global-files/utils.js +0 -315
@@ -1,109 +0,0 @@
1
- import { Container } from "./styles";
2
- import { faArrowDown as IconDownload } from "@fortawesome/free-solid-svg-icons";
3
- import { useState } from "react";
4
- import { ButtonV2 } from "../../atoms/ButtonV2";
5
- import { IconFile } from "../../atoms/IconFile";
6
- import axios from "axios";
7
- import { getFileExtension } from "../../../global-files/utils";
8
-
9
- export const ButtonDownloadFile = (props) => {
10
- const {
11
- id,
12
- key,
13
- className,
14
- type, // white | pink | gray | purple (white -> predeterminado)
15
- transparent, // boolean
16
- size, // number ... default (13)
17
- borderType, // rectangle || circle || (cualquier otro valor -> no borde)
18
- url, // src del file
19
- onDownload, // ( {message , details} ) => {}
20
- } = props;
21
- const [showDownload, setShowDownload] = useState(false);
22
- const [loading, setLoading] = useState(false);
23
-
24
- const getSrc = () => {
25
- const temp = url.split("/");
26
- return temp[temp.length - 1];
27
- };
28
-
29
- const getFile = async () => {
30
- try {
31
- setLoading(true);
32
- const responseFile = await axios({
33
- url: url,
34
- method: "GET",
35
- responseType: "blob",
36
- });
37
- if (responseFile.status != 200) {
38
- setLoading(false);
39
- onDownload &&
40
- onDownload({
41
- message: "No se pudo descargar el archivo",
42
- details: responseFile.statusText,
43
- });
44
- return;
45
- }
46
- const newUrl = window.URL.createObjectURL(new Blob([responseFile.data]));
47
- const link = document.createElement("a");
48
- link.href = newUrl;
49
- link.setAttribute("download", getSrc());
50
- link.style.display = "none";
51
- document.body.appendChild(link);
52
- setLoading(false);
53
- link.click();
54
- document.body.removeChild(link);
55
- } catch (err) {
56
- setLoading(false);
57
- onDownload &&
58
- onDownload({
59
- message: "No se pudo descargar el archivo",
60
- details: err.message,
61
- });
62
- }
63
- };
64
-
65
- return (
66
- <>
67
- <Container
68
- id={id}
69
- key={key}
70
- className={className}
71
- borderType={borderType}
72
- onMouseEnter={(event) => {
73
- if (!showDownload) {
74
- setShowDownload(true);
75
- }
76
- }}
77
- onMouseLeave={(event) => {
78
- if (!loading) {
79
- setShowDownload(false);
80
- }
81
- }}
82
- >
83
- {showDownload ? (
84
- <ButtonV2
85
- className={"buttonDownload"}
86
- type={type}
87
- transparent={transparent}
88
- size={size}
89
- borderType={borderType}
90
- icon={IconDownload}
91
- isLoading={loading}
92
- onClick={async (event) => {
93
- getFile();
94
- }}
95
- />
96
- ) : (
97
- <IconFile
98
- className="iconFile"
99
- type={type}
100
- transparent={transparent}
101
- size={size}
102
- borderType={borderType}
103
- ext={getFileExtension(getSrc())}
104
- />
105
- )}
106
- </Container>
107
- </>
108
- );
109
- };
@@ -1,66 +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
- height: fit-content;
7
- min-width: min-content;
8
- min-height: min-content;
9
- overflow: hidden;
10
- display: grid;
11
- place-items: center;
12
- border-radius: ${({ borderType }) => {
13
- return borderType?.toLowerCase() === "rectangle"
14
- ? "10%"
15
- : borderType?.toLowerCase() === "circle"
16
- ? "50%"
17
- : "none";
18
- }};
19
-
20
- .buttonDownload {
21
- width: 100%;
22
- height: 100%;
23
- .button {
24
- // tipos de botones fill
25
- &.fill {
26
- &.white:hover {
27
- background-color: white;
28
- }
29
- &.whiteS2:hover {
30
- background-color: white;
31
- }
32
- &.pink:hover {
33
- background-color: #e33aa9;
34
- }
35
- &.gray:hover {
36
- background-color: #e8e5e5;
37
- }
38
- &.purple:hover {
39
- background-color: #f7f7fc;
40
- }
41
- }
42
-
43
- // tipos de botones transparent
44
- &.transparent {
45
- &.white:hover {
46
- color: white;
47
- }
48
- &.pink:hover {
49
- color: #e33aa9;
50
- }
51
- &.gray:hover {
52
- .icon,
53
- .iconLoading {
54
- color: #7b7979;
55
- }
56
- }
57
- &.purple:hover {
58
- color: #8a6caa;
59
- }
60
- &.black:hover {
61
- color: #262626;
62
- }
63
- }
64
- }
65
- }
66
- `;
@@ -1,103 +0,0 @@
1
- import { ButtonV2 } from "../../atoms/ButtonV2";
2
- import { Dropdown } from "./index";
3
- import {
4
- faHeart as Icon1,
5
- faHouse as Icon2,
6
- faUser as Icon3,
7
- } from "@fortawesome/free-solid-svg-icons";
8
-
9
- export default {
10
- title: "Components/molecules/Dropdown",
11
- component: Dropdown,
12
- argTypes: {
13
- positionDropdown: {
14
- options: [
15
- undefined,
16
- "topStart",
17
- "topEnd",
18
- "topCenter",
19
- "rightStart",
20
- "rightEnd",
21
- "rightCenter",
22
- "bottomStart",
23
- "bottomEnd",
24
- "bottomCenter",
25
- "leftStart",
26
- "leftEnd",
27
- "leftCenter",
28
- ],
29
- control: { type: "select" },
30
- },
31
- triggerType: {
32
- options: [undefined, "hover", "click"],
33
- control: { type: "select" },
34
- },
35
- },
36
- };
37
-
38
- const Template = (args) => <Dropdown {...args} />;
39
-
40
- export const DropdownTest = Template.bind({});
41
- DropdownTest.args = {
42
- items: [
43
- {
44
- label: "Palomitas de maiz",
45
- //icon: Icon1,
46
- disabled: true,
47
- onClick: (event) => {
48
- console.log("Palomitaz de maiz");
49
- },
50
- },
51
- {
52
- label: "Sabritas",
53
- //icon: Icon2,
54
- onClick: (event) => {
55
- console.log("Sabritas");
56
- },
57
- },
58
- {
59
- label: "sabritas Doritos",
60
- isLoading: true,
61
- onClick: (event) => {
62
- console.log("Sabritas Doritos");
63
- },
64
- },
65
- {
66
- label:
67
- "Este es un texto muy largo que deberia llegar al limite establecido para el width",
68
- //icon: Icon2,
69
- onClick: (event) => {
70
- console.log("texto largo de prueba");
71
- },
72
- },
73
- {
74
- label: "galletas",
75
- icon: undefined,
76
- onClick: (event) => {
77
- console.log("galletas");
78
- },
79
- },
80
- {
81
- label: "jugo de uva",
82
- //icon: Icon3,
83
- onClick: (event) => {
84
- console.log("jugo de uva");
85
- },
86
- },
87
- ],
88
- triggerType: "click",
89
- maxWidthDropdown: "200px",
90
- maxHeightDropdown: "200px",
91
- className: "dropdownPrueba",
92
- classNameDropdown: "dropdownMenuPrueba",
93
- positionDropdown: undefined,
94
- children: (
95
- <ButtonV2
96
- className="buttonTrigger"
97
- type={"white"}
98
- size={14}
99
- borderType={"oval"}
100
- label={"boton trigger"}
101
- />
102
- ),
103
- };
@@ -1,150 +0,0 @@
1
- import { useEffect, useRef, useState } from "react";
2
- import {
3
- ClickAwayListener,
4
- Fade,
5
- Grow,
6
- Popper,
7
- Tooltip as TooltipMUI,
8
- Zoom,
9
- } from "@mui/material";
10
- import { Container } from "./styles";
11
- import React from "react";
12
- import { ButtonV2 } from "../../atoms/ButtonV2";
13
- import { faCircle as IconDefault } from "@fortawesome/free-solid-svg-icons";
14
- import { isArrayEmpty, isStringEmpty } from "../../../global-files/utils";
15
-
16
- /* Este es un menu de opciones tipo select donde cada item
17
- es un boton con su propio onClick */
18
- export const Dropdown = (props) => {
19
- const {
20
- items /* [
21
- {
22
- label: string
23
- icon: FontAwesomeIcon
24
- disabled: boolean
25
- isLoading: boolean
26
- onClick: (event) => {}
27
- } ,
28
- ...
29
- ] */,
30
- triggerType, // (string) "hover" | "click"
31
- children, // componente hijo activador del dropdown
32
- maxWidthDropdown, // string
33
- maxHeightDropdown, // string
34
- className, // (string) clase del container select
35
- classNameDropdown, // (string) clase del contenedor tooltip
36
- positionDropdown, // (string) posicion del contenedor tooltip (values en object positions)
37
- } = props;
38
- const positions = {
39
- topStart: "top-start",
40
- topEnd: "top-end",
41
- topCenter: "top",
42
-
43
- rightStart: "right-start",
44
- rightEnd: "right-end",
45
- rightCenter: "right",
46
-
47
- bottomStart: "bottom-start",
48
- bottomEnd: "bottom-end",
49
- bottomCenter: "bottom",
50
-
51
- leftStart: "left-start",
52
- leftEnd: "left-end",
53
- leftCenter: "left",
54
- };
55
- const [showDropdown, setShowDropdown] = useState(false);
56
-
57
- const renderItems = () => {
58
- const customItems = [];
59
- if (!isArrayEmpty(items)) {
60
- const useIconDefault = items.some((item) => {
61
- return item.icon ? true : false;
62
- });
63
- items.forEach((item, index) => {
64
- customItems.push(
65
- <ButtonV2
66
- key={"item-" + index}
67
- className={
68
- "dropdownItem" +
69
- (useIconDefault ? (item.icon ? "" : " iconDefault") : "")
70
- }
71
- type={"whiteS3"}
72
- borderType={undefined}
73
- size={12}
74
- disabled={item.disabled}
75
- isLoading={item.isLoading}
76
- label={isStringEmpty(item.label) ? undefined : item.label}
77
- icon={useIconDefault ? item.icon ?? IconDefault : undefined}
78
- onClick={(event) => {
79
- event.stopPropagation();
80
- setTimeout(() => {
81
- setShowDropdown(false);
82
- item.onClick && item.onClick(event);
83
- }, 200);
84
- }}
85
- />
86
- );
87
- });
88
- }
89
- return customItems;
90
- };
91
-
92
- return (
93
- <ClickAwayListener
94
- onClickAway={(event) => {
95
- if (triggerType !== "hover") setShowDropdown(false);
96
- }}
97
- >
98
- <Container
99
- className={!isStringEmpty(className) ? className : ""}
100
- maxWidthDropdown={maxWidthDropdown}
101
- maxHeightDropdown={maxHeightDropdown}
102
- onMouseEnter={(event) => {
103
- if (triggerType === "hover") {
104
- setShowDropdown(true);
105
- }
106
- }}
107
- onMouseLeave={(event) => {
108
- if (triggerType === "hover") {
109
- setShowDropdown(false);
110
- }
111
- }}
112
- >
113
- <TooltipMUI
114
- placement={positions[positionDropdown] ?? positions.bottomStart}
115
- open={showDropdown}
116
- arrow={false}
117
- componentsProps={{
118
- tooltip: {
119
- className:
120
- "dropdownMenu" +
121
- (isStringEmpty(classNameDropdown)
122
- ? ""
123
- : " " + classNameDropdown),
124
- },
125
- popper: { disablePortal: true },
126
- transition: { timeout: 300 },
127
- }}
128
- TransitionComponent={Fade}
129
- enterDelay={100}
130
- followCursor={false}
131
- disableFocusListener
132
- disableTouchListener
133
- disableHoverListener
134
- title={<>{renderItems()}</>}
135
- >
136
- <div
137
- className="containerIntern"
138
- onClick={(event) => {
139
- if (triggerType !== "hover") {
140
- setShowDropdown(!showDropdown);
141
- }
142
- }}
143
- >
144
- {children}
145
- </div>
146
- </TooltipMUI>
147
- </Container>
148
- </ClickAwayListener>
149
- );
150
- };
@@ -1,75 +0,0 @@
1
- import { FontFamily } from "../../../global-files/variables";
2
- import styled from "styled-components";
3
-
4
- export const Container = styled.div`
5
- width: fit-content;
6
-
7
- .containerIntern {
8
- width: inherit;
9
- border: inherit;
10
- border-radius: inherit;
11
-
12
- > * {
13
- width: inherit;
14
- border: inherit;
15
- border-radius: inherit;
16
- }
17
- }
18
-
19
- > .MuiTooltip-popper {
20
- background-color: transparent;
21
-
22
- .dropdownMenu {
23
- --background: white;
24
- box-shadow: 0px 0px 10px 1px gray;
25
- background-color: var(--background);
26
- padding: 0px 0px;
27
- border-radius: 7px;
28
- display: flex;
29
- flex-direction: column;
30
- gap: 0px;
31
- overflow: auto;
32
- max-width: ${({ maxWidthDropdown }) =>
33
- maxWidthDropdown ? maxWidthDropdown : "400px"};
34
- max-height: ${({ maxHeightDropdown }) =>
35
- maxHeightDropdown ? maxHeightDropdown : "80vh"};
36
-
37
- .dropdownItem {
38
- width: 100%;
39
- border-radius: 0px;
40
- border: none;
41
-
42
- .button {
43
- justify-content: flex-start;
44
- border: inherit;
45
- text-align: left;
46
- font-family: ${FontFamily.RobotoRegular};
47
- padding: 10px;
48
- gap: 11px;
49
-
50
- .icon {
51
- font-size: calc(var(--size) + 1px);
52
- opacity: 0.75;
53
- }
54
- }
55
-
56
- &.iconDefault .button .icon {
57
- opacity: 0;
58
- }
59
- }
60
- }
61
-
62
- &[data-popper-placement*="bottom"] .dropdownMenu {
63
- margin-top: 10px;
64
- }
65
- &[data-popper-placement*="top"] .dropdownMenu {
66
- margin-bottom: 10px;
67
- }
68
- &[data-popper-placement*="left"] .dropdownMenu {
69
- margin-right: 10px;
70
- }
71
- &[data-popper-placement*="right"] .dropdownMenu {
72
- margin-left: 10px;
73
- }
74
- }
75
- `;
@@ -1,68 +0,0 @@
1
- import { ImageTooltip } from "./index";
2
-
3
- export default {
4
- title: "Components/molecules/ImageTooltip",
5
- component: ImageTooltip,
6
- argTypes: {
7
- position: {
8
- options: [
9
- undefined,
10
- "topStart",
11
- "topEnd",
12
- "topCenter",
13
- "rightStart",
14
- "rightEnd",
15
- "rightCenter",
16
- "bottomStart",
17
- "bottomEnd",
18
- "bottomCenter",
19
- "leftStart",
20
- "leftEnd",
21
- "leftCenter",
22
- ],
23
- control: { type: "select" },
24
- },
25
- },
26
- };
27
-
28
- const Template = (args) => <ImageTooltip {...args} />;
29
-
30
- const keyS3_test =
31
- "84300/1/chat/playa-213f791b-d890-48e1-be19-28bf5a95d517.jpeg";
32
- const srcTest = `https://content-management-images.s3.amazonaws.com/${keyS3_test}`;
33
- export const ImageTooltipTest = Template.bind({});
34
- ImageTooltipTest.args = {
35
- width: "200px",
36
- sizeLoading: "50",
37
- colorLoading: "#bbbbbb",
38
- src: "bn",
39
- componentDefault: <label>test error</label>,
40
- componentTooltip: <label> mensaje del tooltip test </label>,
41
- position: undefined,
42
- };
43
-
44
- const keyS3_OK =
45
- "84300/1/chat/f6579ed5-16e5-48d8-ace5-6be8e8e68f53-38896acf-9179-4686-9088-9784df624ab8.png";
46
- const srcOK = `https://content-management-images.s3.amazonaws.com/${keyS3_OK}`;
47
- export const ImageTooltipOK = Template.bind({});
48
- ImageTooltipOK.args = {
49
- width: "250px",
50
- sizeLoading: "40",
51
- src: srcOK,
52
- componentDefault: <label> img no cargada </label>,
53
- componentTooltip: <label> mensaje del tooltip OK </label>,
54
- position: undefined,
55
- };
56
-
57
- const keyS3_ERROR =
58
- "84300/1/chat/21dba1da-3c60-42c4-97bd-033664808256-fb19ff57-b91c-4ef2-ba2a-d857b55fb33b.svg";
59
- const srcERROR = `https://content-management-images.s3.amazonaws.com/${keyS3_ERROR}`;
60
- export const ImageTooltipERROR = Template.bind({});
61
- ImageTooltipERROR.args = {
62
- width: "300px",
63
- sizeLoading: "60",
64
- src: srcERROR,
65
- componentDefault: <label> ERROR al cargar </label>,
66
- componentTooltip: <label> mensaje del tooltip ERROR </label>,
67
- position: undefined,
68
- };
@@ -1,63 +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
- import { Tooltip } from "../../atoms/Tooltip";
6
-
7
- export const ImageTooltip = (props) => {
8
- const {
9
- className, // string
10
- width, // string
11
- sizeLoading, // number
12
- colorLoading, // string
13
- classNameLoading, // string
14
- src, // imagen a cargar (string)
15
- componentDefault, // componente a mostrar en caso de que no cargue src (JSX)
16
- classNameImg, // string
17
- classNameTooltip,
18
- componentTooltip,
19
- position, // (string) posicion del contenedor tooltip (values en object positions)
20
- } = props;
21
- const [imgLoad, setImgLoad] = useState();
22
- const [loading, setLoading] = useState(false);
23
-
24
- /* solo para hacer pruebas en modo dev
25
- useEffect(() => {
26
- setTimeout(() => {
27
- setLoading(false);
28
- }, 5000);
29
- }, []);
30
- */
31
-
32
- return (
33
- <Tooltip
34
- position={position ?? "topCenter"}
35
- addArrow={false}
36
- transitionType={"zoom"}
37
- followCursor={false}
38
- className={className}
39
- classNameTooltip={classNameTooltip}
40
- componentTooltip={imgLoad !== undefined && !loading && componentTooltip}
41
- >
42
- {src && (imgLoad === undefined || loading) && (
43
- <ContainerLoading
44
- className={classNameLoading}
45
- sizeLoading={sizeLoading}
46
- colorLoading={colorLoading}
47
- >
48
- <Icon pulse icon={iconLoading} />
49
- </ContainerLoading>
50
- )}
51
-
52
- {(!src || (imgLoad === false && !loading)) && componentDefault}
53
-
54
- <Img
55
- className={classNameImg}
56
- src={src}
57
- onLoad={(event) => setImgLoad(true)}
58
- onError={(event) => setImgLoad(false)}
59
- show={imgLoad === true && !loading}
60
- />
61
- </Tooltip>
62
- );
63
- };
@@ -1,18 +0,0 @@
1
- import styled from "styled-components";
2
- import { GlobalColors, FontFamily } from "../../../global-files/variables";
3
-
4
- export const ContainerLoading = styled.div`
5
- width: 100%;
6
- display: grid;
7
- place-items: center;
8
- min-width: min-content;
9
- font-size: ${({ sizeLoading }) => (sizeLoading ? sizeLoading : "30")}px;
10
- color: ${({ colorLoading }) => (colorLoading ? colorLoading : "#9e2674")};
11
- padding: 5px;
12
- `;
13
-
14
- export const Img = styled.img`
15
- display: ${({ show }) => (show ? "grid" : "none")};
16
- width: 100%;
17
- object-fit: contain;
18
- `;