contentoh-components-library 21.2.84 → 21.2.85

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 (177) hide show
  1. package/.env.development +6 -1
  2. package/dist/assets/fonts/Roboto/Roboto-Medium.ttf +0 -0
  3. package/dist/assets/fonts/Roboto/Roboto-Regular.ttf +0 -0
  4. package/dist/assets/images/defaultImages/Spinner.gif +0 -0
  5. package/dist/assets/images/defaultImages/notFound.svg +124 -0
  6. package/dist/components/atoms/ButtonFileChooser/ButtonFileChooser.stories.js +72 -0
  7. package/dist/components/atoms/ButtonFileChooser/index.js +116 -0
  8. package/dist/components/atoms/ButtonFileChooser/styles.js +20 -0
  9. package/dist/components/atoms/ButtonV2/ButtonV2.stories.js +66 -0
  10. package/dist/components/atoms/ButtonV2/index.js +109 -0
  11. package/dist/components/atoms/ButtonV2/styles.js +53 -0
  12. package/dist/components/atoms/CustomIcon/CustomIcon.stories.js +50 -0
  13. package/dist/components/atoms/CustomIcon/index.js +38 -0
  14. package/dist/components/atoms/CustomIcon/styles.js +33 -0
  15. package/dist/components/atoms/IconFile/IconFile.stories.js +48 -0
  16. package/dist/components/atoms/IconFile/index.js +251 -0
  17. package/dist/components/atoms/IconFile/styles.js +23 -0
  18. package/dist/components/atoms/Image/Image.stories.js +63 -0
  19. package/dist/components/atoms/Image/index.js +72 -0
  20. package/dist/components/atoms/Image/styles.js +40 -0
  21. package/dist/components/atoms/ImageLink/ImageLink.stories.js +63 -0
  22. package/dist/components/atoms/ImageLink/index.js +75 -0
  23. package/dist/components/atoms/ImageLink/styles.js +40 -0
  24. package/dist/components/atoms/ImagePreview/ImagePreview.stories.js +70 -0
  25. package/dist/components/atoms/ImagePreview/index.js +220 -0
  26. package/dist/components/atoms/ImagePreview/styles.js +44 -0
  27. package/dist/components/atoms/InputText/InputText.stories.js +62 -0
  28. package/dist/components/atoms/InputText/index.js +64 -0
  29. package/dist/components/atoms/InputText/styles.js +32 -0
  30. package/dist/components/atoms/NotFound/NotFound.stories.js +36 -0
  31. package/dist/components/atoms/NotFound/index.js +73 -0
  32. package/dist/components/atoms/NotFound/styles.js +20 -0
  33. package/dist/components/atoms/Tooltip/Tooltip.stories.js +36 -6
  34. package/dist/components/atoms/Tooltip/index.js +41 -26
  35. package/dist/components/atoms/Tooltip/styles.js +3 -1
  36. package/dist/components/molecules/ButtonDownloadFile/DownloadFile.stories.js +66 -0
  37. package/dist/components/molecules/ButtonDownloadFile/index.js +179 -0
  38. package/dist/components/molecules/ButtonDownloadFile/styles.js +23 -0
  39. package/dist/components/molecules/CustomSelect/CustomSelect.stories.js +21 -22
  40. package/dist/components/molecules/CustomSelect/SelectItem.js +10 -1
  41. package/dist/components/molecules/HeaderTop/index.js +12 -5
  42. package/dist/components/molecules/HeaderTop/styles.js +1 -1
  43. package/dist/components/molecules/ImageTooltip/ImageTooltip.stories.js +72 -0
  44. package/dist/components/molecules/ImageTooltip/index.js +84 -0
  45. package/dist/components/molecules/ImageTooltip/styles.js +33 -0
  46. package/dist/components/organisms/Chat/Chat.stories.js +215 -0
  47. package/dist/components/organisms/Chat/ChatLists/ChatLists.stories.js +83 -0
  48. package/dist/components/organisms/Chat/ChatLists/index.js +158 -0
  49. package/dist/components/organisms/Chat/ChatLists/styles.js +29 -0
  50. package/dist/components/organisms/Chat/ContainerItems/ContainerItems.stories.js +176 -0
  51. package/dist/components/organisms/Chat/ContainerItems/index.js +570 -0
  52. package/dist/components/organisms/Chat/ContainerItems/styles.js +20 -0
  53. package/dist/components/organisms/Chat/ContentChat/ContentChat.stories.js +142 -0
  54. package/dist/components/organisms/Chat/ContentChat/index.js +1422 -0
  55. package/dist/components/organisms/Chat/ContentChat/styles.js +20 -0
  56. package/dist/components/organisms/Chat/Footer/Footer.stories.js +43 -0
  57. package/dist/components/organisms/Chat/Footer/index.js +983 -0
  58. package/dist/components/organisms/Chat/Footer/styles.js +32 -0
  59. package/dist/components/organisms/Chat/Header/Header.stories.js +96 -0
  60. package/dist/components/organisms/Chat/Header/index.js +84 -0
  61. package/dist/components/organisms/Chat/Header/styles.js +20 -0
  62. package/dist/components/organisms/Chat/index.js +325 -0
  63. package/dist/components/organisms/Chat/styles.js +29 -0
  64. package/dist/components/organisms/Modal/Modal.stories.js +66 -0
  65. package/dist/components/organisms/Modal/index.js +95 -0
  66. package/dist/components/organisms/Modal/styles.js +20 -0
  67. package/dist/components/pages/Dashboard/Dashboard.stories.js +16 -44
  68. package/dist/components/pages/Dashboard/index.js +10 -17
  69. package/dist/components/pages/ProviderProductEdition/index.js +3 -2
  70. package/dist/components/pages/RetailerProductEdition/index.js +4 -7
  71. package/dist/global-files/fonts.css +18 -0
  72. package/dist/global-files/handle_http.js +383 -0
  73. package/dist/global-files/utils.js +472 -0
  74. package/dist/global-files/variables.js +3 -1
  75. package/package.json +13 -1
  76. package/src/assets/fonts/Roboto/Roboto-Medium.ttf +0 -0
  77. package/src/assets/fonts/Roboto/Roboto-Regular.ttf +0 -0
  78. package/src/assets/images/chatPopup/Spinner.gif +0 -0
  79. package/src/assets/images/chatPopup/close.svg +3 -0
  80. package/src/assets/images/chatPopup/defaultImage.png +0 -0
  81. package/src/assets/images/chatPopup/defaultProfile.png +0 -0
  82. package/src/assets/images/chatPopup/doc.svg +1 -0
  83. package/src/assets/images/chatPopup/document.svg +1 -0
  84. package/src/assets/images/chatPopup/iconChat.svg +19 -0
  85. package/src/assets/images/chatPopup/iconPlus.svg +3 -0
  86. package/src/assets/images/chatPopup/pdf.svg +75 -0
  87. package/src/assets/images/chatPopup/remove.svg +4 -0
  88. package/src/assets/images/chatPopup/send.svg +3 -0
  89. package/src/assets/images/chatPopup/svgIcon.svg +109 -0
  90. package/src/assets/images/chatPopup/upload_file.svg +3 -0
  91. package/src/assets/images/chatPopup/xls.svg +53 -0
  92. package/src/assets/images/customSelect/starIcon.svg +14 -0
  93. package/src/assets/images/defaultImages/Spinner.gif +0 -0
  94. package/src/assets/images/defaultImages/notFound.svg +124 -0
  95. package/src/components/atoms/ButtonFileChooser/ButtonFileChooser.stories.js +47 -0
  96. package/src/components/atoms/ButtonFileChooser/index.js +70 -0
  97. package/src/components/atoms/ButtonFileChooser/styles.js +4 -0
  98. package/src/components/atoms/ButtonV2/ButtonV2.stories.js +50 -0
  99. package/src/components/atoms/ButtonV2/index.js +74 -0
  100. package/src/components/atoms/ButtonV2/styles.js +187 -0
  101. package/src/components/atoms/CustomIcon/CustomIcon.stories.js +36 -0
  102. package/src/components/atoms/CustomIcon/index.js +41 -0
  103. package/src/components/atoms/CustomIcon/styles.js +85 -0
  104. package/src/components/atoms/IconFile/IconFile.stories.js +35 -0
  105. package/src/components/atoms/IconFile/index.js +120 -0
  106. package/src/components/atoms/IconFile/styles.js +67 -0
  107. package/src/components/atoms/Image/Image.stories.js +43 -0
  108. package/src/components/atoms/Image/index.js +54 -0
  109. package/src/components/atoms/Image/styles.js +25 -0
  110. package/src/components/atoms/ImageLink/ImageLink.stories.js +43 -0
  111. package/src/components/atoms/ImageLink/index.js +58 -0
  112. package/src/components/atoms/ImageLink/styles.js +30 -0
  113. package/src/components/atoms/ImagePreview/ImagePreview.stories.js +52 -0
  114. package/src/components/atoms/ImagePreview/index.js +192 -0
  115. package/src/components/atoms/ImagePreview/styles.js +77 -0
  116. package/src/components/atoms/InputText/InputText.stories.js +40 -0
  117. package/src/components/atoms/InputText/index.js +63 -0
  118. package/src/components/atoms/InputText/styles.js +89 -0
  119. package/src/components/atoms/NotFound/NotFound.stories.js +19 -0
  120. package/src/components/atoms/NotFound/index.js +53 -0
  121. package/src/components/atoms/NotFound/styles.js +55 -0
  122. package/src/components/atoms/Tooltip/Tooltip.stories.js +51 -0
  123. package/src/components/atoms/Tooltip/index.js +59 -0
  124. package/src/components/atoms/Tooltip/styles.js +42 -0
  125. package/src/components/molecules/ButtonDownloadFile/DownloadFile.stories.js +54 -0
  126. package/src/components/molecules/ButtonDownloadFile/index.js +113 -0
  127. package/src/components/molecules/ButtonDownloadFile/styles.js +66 -0
  128. package/src/components/molecules/CustomSelect/CustomSelect.stories.js +20 -12
  129. package/src/components/molecules/CustomSelect/SelectItem.js +7 -0
  130. package/src/components/molecules/HeaderTop/index.js +11 -6
  131. package/src/components/molecules/HeaderTop/styles.js +4 -0
  132. package/src/components/molecules/ImageTooltip/ImageTooltip.stories.js +46 -0
  133. package/src/components/molecules/ImageTooltip/index.js +64 -0
  134. package/src/components/molecules/ImageTooltip/styles.js +18 -0
  135. package/src/components/organisms/Chat/Chat.stories.js +199 -0
  136. package/src/components/organisms/Chat/ChatLists/ChatLists.stories.js +65 -0
  137. package/src/components/organisms/Chat/ChatLists/Rotoplas.jpeg +0 -0
  138. package/src/components/organisms/Chat/ChatLists/THD.png +0 -0
  139. package/src/components/organisms/Chat/ChatLists/index.js +141 -0
  140. package/src/components/organisms/Chat/ChatLists/styles.js +162 -0
  141. package/src/components/organisms/Chat/ContainerItems/ContainerItems.stories.js +142 -0
  142. package/src/components/organisms/Chat/ContainerItems/index.js +551 -0
  143. package/src/components/organisms/Chat/ContainerItems/styles.js +336 -0
  144. package/src/components/organisms/Chat/ContentChat/ContentChat.stories.js +102 -0
  145. package/src/components/organisms/Chat/ContentChat/Rotoplas.jpeg +0 -0
  146. package/src/components/organisms/Chat/ContentChat/THD.png +0 -0
  147. package/src/components/organisms/Chat/ContentChat/index.js +900 -0
  148. package/src/components/organisms/Chat/ContentChat/styles.js +41 -0
  149. package/src/components/organisms/Chat/Footer/Footer.stories.js +22 -0
  150. package/src/components/organisms/Chat/Footer/index.js +669 -0
  151. package/src/components/organisms/Chat/Footer/styles.js +286 -0
  152. package/src/components/organisms/Chat/Header/Header.stories.js +66 -0
  153. package/src/components/organisms/Chat/Header/index.js +94 -0
  154. package/src/components/organisms/Chat/Header/styles.js +49 -0
  155. package/src/components/organisms/Chat/index.js +295 -0
  156. package/src/components/organisms/Chat/styles.js +42 -0
  157. package/src/components/organisms/Modal/Modal.stories.js +55 -0
  158. package/src/components/organisms/Modal/index.js +97 -0
  159. package/src/components/organisms/Modal/styles.js +103 -0
  160. package/src/components/pages/Dashboard/Dashboard.stories.js +16 -47
  161. package/src/components/pages/Dashboard/index.js +4 -13
  162. package/src/components/pages/ProviderProductEdition/index.js +6 -7
  163. package/src/components/pages/RetailerProductEdition/index.js +5 -4
  164. package/src/global-files/fonts.css +18 -0
  165. package/src/global-files/handle_http.js +231 -0
  166. package/src/global-files/utils.js +300 -0
  167. package/src/global-files/variables.js +2 -0
  168. package/dist/components/atoms/ChatPopUp/ChatPopUp.stories.js +0 -28
  169. package/dist/components/atoms/ChatPopUp/index.js +0 -841
  170. package/dist/components/atoms/ChatPopUp/styles.js +0 -27
  171. package/dist/components/atoms/ChatPopUp/utils/handlersChat.js +0 -182
  172. package/dist/components/atoms/StatusTag/StatusTag.stories.js +0 -48
  173. package/dist/components/atoms/StatusTag/index.js +0 -58
  174. package/dist/components/atoms/StatusTag/styles.js +0 -20
  175. package/dist/components/pages/RegistrationLoginFirstStep/RegistrationLoginFirstStep.stories.js +0 -37
  176. package/dist/components/pages/RegistrationLoginFirstStep/index.js +0 -269
  177. package/dist/components/pages/RegistrationLoginFirstStep/styles.js +0 -20
@@ -0,0 +1,43 @@
1
+ import ImageLink from "./index";
2
+
3
+ export default {
4
+ title: "Components/atoms/ImageLink",
5
+ component: ImageLink,
6
+ argTypes: {},
7
+ };
8
+
9
+ const Template = (args) => <ImageLink {...args} />;
10
+
11
+ const keyS3_test =
12
+ "84300/1/chat/playa-213f791b-d890-48e1-be19-28bf5a95d517.jpeg";
13
+ const srcTest = `https://content-management-images.s3.amazonaws.com/${keyS3_test}`;
14
+ export const ImageTest = Template.bind({});
15
+ ImageTest.args = {
16
+ width: "200px",
17
+ sizeLoading: "50",
18
+ colorLoading: "#bbbbbb",
19
+ src: srcTest,
20
+ componentDefault: <label> test error </label>,
21
+ };
22
+
23
+ const keyS3_OK =
24
+ "84300/1/chat/f6579ed5-16e5-48d8-ace5-6be8e8e68f53-38896acf-9179-4686-9088-9784df624ab8.png";
25
+ const srcOK = `https://content-management-images.s3.amazonaws.com/${keyS3_OK}`;
26
+ export const ImageOK = Template.bind({});
27
+ ImageOK.args = {
28
+ width: "250px",
29
+ sizeLoading: "40",
30
+ src: srcOK,
31
+ componentDefault: <label> img no cargada </label>,
32
+ };
33
+
34
+ const keyS3_ERROR =
35
+ "84300/1/chat/21dba1da-3c60-42c4-97bd-033664808256-fb19ff57-b91c-4ef2-ba2a-d857b55fb33b.svg";
36
+ const srcERROR = `https://content-management-images.s3.amazonaws.com/${keyS3_ERROR}`;
37
+ export const ImageERROR = Template.bind({});
38
+ ImageERROR.args = {
39
+ width: "300px",
40
+ sizeLoading: "60",
41
+ src: srcERROR,
42
+ componentDefault: <label> ERROR al cargar </label>,
43
+ };
@@ -0,0 +1,58 @@
1
+ import { Container, ContainerLoading, ContainerLink } from "./styles";
2
+ import { FontAwesomeIcon as Icon } from "@fortawesome/react-fontawesome";
3
+ import { faSpinner as iconLoading } from "@fortawesome/free-solid-svg-icons";
4
+ import PropTypes from "prop-types";
5
+ import { useState, useEffect } from "react";
6
+
7
+ export default function ImageLink(props) {
8
+ const {
9
+ className, // string
10
+ width, // string
11
+ sizeLoading, // number
12
+ colorLoading, // string
13
+ src, // imagen a cargar (string)
14
+ componentDefault, // componente a mostrar en caso de que no cargue src (JSX)
15
+ } = props;
16
+ const [imgLoad, setImgLoad] = useState();
17
+ const [loading, setLoading] = useState(false);
18
+
19
+ /* solo para hacer pruebas en modo dev
20
+ useEffect(() => {
21
+ setTimeout(() => {
22
+ setLoading(false);
23
+ }, 5000);
24
+ }, []); */
25
+
26
+ return (
27
+ <Container className={className} width={width}>
28
+ {src && (imgLoad === undefined || loading) && (
29
+ <ContainerLoading
30
+ className={"container-loading"}
31
+ sizeLoading={sizeLoading}
32
+ colorLoading={colorLoading}
33
+ >
34
+ <Icon className="icon" pulse icon={iconLoading} />
35
+ </ContainerLoading>
36
+ )}
37
+
38
+ {(!src || (imgLoad === false && !loading)) && componentDefault}
39
+
40
+ <ContainerLink
41
+ className="container-img"
42
+ show={imgLoad === true && !loading}
43
+ href={src}
44
+ >
45
+ <img
46
+ className="img"
47
+ src={src}
48
+ onLoad={(event) => {
49
+ setImgLoad(true);
50
+ }}
51
+ onError={(event) => {
52
+ setImgLoad(false);
53
+ }}
54
+ />
55
+ </ContainerLink>
56
+ </Container>
57
+ );
58
+ }
@@ -0,0 +1,30 @@
1
+ import styled from "styled-components";
2
+ import { GlobalColors, FontFamily } from "../../../global-files/variables";
3
+
4
+ export const Container = styled.div`
5
+ display: grid;
6
+ place-items: center;
7
+ width: ${({ width }) => (width ? width : "min-content")};
8
+ min-width: min-content;
9
+ `;
10
+
11
+ export const ContainerLoading = styled.div`
12
+ width: 100%;
13
+ display: grid;
14
+ place-items: center;
15
+ min-width: min-content;
16
+ font-size: ${({ sizeLoading }) => (sizeLoading ? sizeLoading : "30")}px;
17
+ color: ${({ colorLoading }) => (colorLoading ? colorLoading : "#9e2674")};
18
+ padding: 5px;
19
+ `;
20
+
21
+ export const ContainerLink = styled.a`
22
+ display: ${({ show }) => (show ? "grid" : "none")};
23
+ width: 100%;
24
+ cursor: pointer;
25
+
26
+ img {
27
+ width: 100%;
28
+ object-fit: contain;
29
+ }
30
+ `;
@@ -0,0 +1,52 @@
1
+ import ImagePreview from "./index";
2
+
3
+ export default {
4
+ title: "Components/atoms/ImagePreview",
5
+ component: ImagePreview,
6
+ argTypes: {},
7
+ };
8
+
9
+ const Template = (args) => <ImagePreview {...args} />;
10
+
11
+ const keyS3_test =
12
+ "84300/1/chat/playa-213f791b-d890-48e1-be19-28bf5a95d517.jpeg";
13
+ const srcTest = `https://content-management-images.s3.amazonaws.com/${keyS3_test}`;
14
+ export const ImageTest = Template.bind({});
15
+ ImageTest.args = {
16
+ className: "modal-imagePreview",
17
+ width: "200px",
18
+ sizeLoading: "50",
19
+ colorLoading: "#bbbbbb",
20
+ url: srcTest,
21
+ imageName: "playa-213f791b-d890-48e1-be19-28bf5a95d517.jpeg",
22
+ showButtonDownload: true,
23
+ componentDefault: <label> test error </label>,
24
+ };
25
+
26
+ const keyS3_OK =
27
+ "84300/1/chat/f6579ed5-16e5-48d8-ace5-6be8e8e68f53-38896acf-9179-4686-9088-9784df624ab8.png";
28
+ const srcOK = `https://content-management-images.s3.amazonaws.com/${keyS3_OK}`;
29
+ export const ImageOK = Template.bind({});
30
+ ImageOK.args = {
31
+ width: "250px",
32
+ sizeLoading: "40",
33
+ url: srcOK,
34
+ imageName:
35
+ "f6579ed5-16e5-48d8-ace5-6be8e8e68f53-38896acf-9179-4686-9088-9784df624ab8.png",
36
+ showButtonDownload: true,
37
+ componentDefault: <label> img no cargada </label>,
38
+ };
39
+
40
+ const keyS3_ERROR =
41
+ "84300/1/chat/21dba1da-3c60-42c4-97bd-033664808256-fb19ff57-b91c-4ef2-ba2a-d857b55fb33b.svg";
42
+ const srcERROR = `https://content-management-images.s3.amazonaws.com/${keyS3_ERROR}`;
43
+ export const ImageERROR = Template.bind({});
44
+ ImageERROR.args = {
45
+ width: "300px",
46
+ sizeLoading: "60",
47
+ url: srcERROR,
48
+ imageName:
49
+ "21dba1da-3c60-42c4-97bd-033664808256-fb19ff57-b91c-4ef2-ba2a-d857b55fb33b.svg",
50
+ showButtonDownload: true,
51
+ componentDefault: <label> ERROR al cargar </label>,
52
+ };
@@ -0,0 +1,192 @@
1
+ import { Container, ContainerLoading, ContainerModalImg, Img } from "./styles";
2
+ import { FontAwesomeIcon as Icon } from "@fortawesome/react-fontawesome";
3
+ import {
4
+ faSpinner as iconLoading,
5
+ faArrowDown as IconDownload,
6
+ } from "@fortawesome/free-solid-svg-icons";
7
+ import PropTypes from "prop-types";
8
+ import { useState, useEffect } from "react";
9
+ import { Fade, Grow, Modal as ModalMUI, Zoom } from "@mui/material";
10
+ import Modal from "../../organisms/Modal";
11
+ import ButtonV2 from "../ButtonV2";
12
+ import axios from "axios";
13
+ import Image from "../Image";
14
+
15
+ export default function ImagePreview(props) {
16
+ const {
17
+ className, // string
18
+ width, // string
19
+ sizeLoading, // number
20
+ colorLoading, // string
21
+ downloadImgURL, // URL de la imagen a descargar (string)
22
+ imgURL, // imagen a cargar (string)
23
+ modalImgURL, // imagen a cargar (string) para el modo full
24
+ imageName, // nombre del file
25
+ showButtonDownload, // boolean
26
+ componentDefault, // componente a mostrar en caso de que no cargue src (JSX)
27
+ componentDefaultModal, // componente a mostrar en el modal en caso de que no cargue srcModal (JSX)
28
+ } = props;
29
+ const [imgLoad, setImgLoad] = useState();
30
+ const [imgLoadModal, setImgLoadModal] = useState();
31
+ const [loading, setLoading] = useState(false);
32
+ const [loadingDownload, setLoadingDownload] = useState(false);
33
+ const [showModalImg, setShowModalImg] = useState(false);
34
+ const [modalAlert, setModalAlert] = useState({
35
+ show: false,
36
+ title: "",
37
+ message:
38
+ "Ocurrió un error al descargar la imagen ¿Quieres intentarlo de nuevo?",
39
+ icon: "info",
40
+ buttons: [
41
+ <ButtonV2
42
+ key={"btn-No"}
43
+ type={"white"}
44
+ borderType={"oval"}
45
+ label={"No"}
46
+ size={12}
47
+ onClick={(event) => {
48
+ setModalAlert((prev) => ({
49
+ ...prev,
50
+ show: false,
51
+ }));
52
+ }}
53
+ />,
54
+ <ButtonV2
55
+ key={"btn-Intentar"}
56
+ type={"pink"}
57
+ borderType={"oval"}
58
+ label={"Intentar"}
59
+ size={12}
60
+ onClick={(event) => {
61
+ setModalAlert((prev) => ({
62
+ ...prev,
63
+ show: false,
64
+ }));
65
+ getImage();
66
+ }}
67
+ />,
68
+ ],
69
+ });
70
+
71
+ const getImage = () => {
72
+ //setLoadingDownload(true);
73
+ const link = document.createElement("a");
74
+ link.href = downloadImgURL;
75
+ link.setAttribute("download", imageName ?? "image");
76
+ link.style.display = "none";
77
+ link.onerror = () => {
78
+ setModalAlert((prev) => ({
79
+ ...prev,
80
+ show: true,
81
+ }));
82
+ return;
83
+ };
84
+ document.body.appendChild(link);
85
+ link.click();
86
+ document.body.removeChild(link);
87
+ };
88
+
89
+ /* solo para hacer pruebas en modo dev
90
+ useEffect(() => {
91
+ setTimeout(() => {
92
+ setLoading(false);
93
+ }, 5000);
94
+ }, []); */
95
+ /*
96
+ useEffect(() => {
97
+ console.log("imgURL:", imgURL);
98
+ console.log("modalImgURL:", modalImgURL);
99
+ }, []);
100
+ */
101
+
102
+ return (
103
+ <Container className={className} width={width}>
104
+ {imgURL && (imgLoad === undefined || loading) && (
105
+ <ContainerLoading
106
+ className={"container-loading"}
107
+ sizeLoading={sizeLoading}
108
+ colorLoading={colorLoading}
109
+ >
110
+ <Icon className="icon" pulse icon={iconLoading} />
111
+ </ContainerLoading>
112
+ )}
113
+
114
+ {(!imgURL || (imgLoad === false && !loading)) && componentDefault}
115
+
116
+ <Img
117
+ show={imgLoad && !loading}
118
+ className="img"
119
+ src={imgURL}
120
+ onLoad={(event) => {
121
+ setImgLoad(true);
122
+ }}
123
+ onError={(event) => {
124
+ setImgLoad(false);
125
+ }}
126
+ onClick={(event) => {
127
+ setShowModalImg(true);
128
+ }}
129
+ />
130
+
131
+ {/* modal que muestra la img en pantalla completa con
132
+ boton de download en caso de ser especificado */}
133
+ <ModalMUI
134
+ open={showModalImg}
135
+ disablePortal={true}
136
+ closeAfterTransition
137
+ componentsProps={{
138
+ root: {
139
+ className: "container-modal",
140
+ },
141
+ backdrop: {
142
+ timeout: 400,
143
+ className: "container-background",
144
+ },
145
+ }}
146
+ onClick={(event) => {
147
+ if (!loadingDownload) setShowModalImg(false);
148
+ }}
149
+ >
150
+ <Fade in={showModalImg} timeout={400}>
151
+ <ContainerModalImg>
152
+ {/* icono download */}
153
+ {showButtonDownload && (
154
+ <div className="container-header">
155
+ <ButtonV2
156
+ className={"container-btnDownload"}
157
+ type={"pink"}
158
+ size={14}
159
+ borderType={"circle"}
160
+ icon={IconDownload}
161
+ isLoading={loadingDownload}
162
+ onClick={(event) => {
163
+ event.stopPropagation();
164
+ getImage();
165
+ }}
166
+ />
167
+ </div>
168
+ )}
169
+
170
+ <Image
171
+ className="container-imgModal"
172
+ classNameImg="img"
173
+ sizeLoading={100}
174
+ colorLoading={"white"}
175
+ src={modalImgURL}
176
+ componentDefault={componentDefaultModal}
177
+ />
178
+ </ContainerModalImg>
179
+ </Fade>
180
+ </ModalMUI>
181
+
182
+ {/* modal utilizado para alertar cuando falla la descarga */}
183
+ <Modal
184
+ show={modalAlert.show}
185
+ title={modalAlert.title}
186
+ message={modalAlert.message}
187
+ icon={modalAlert.icon}
188
+ buttons={modalAlert.buttons}
189
+ />
190
+ </Container>
191
+ );
192
+ }
@@ -0,0 +1,77 @@
1
+ import styled from "styled-components";
2
+ import { GlobalColors, FontFamily } from "../../../global-files/variables";
3
+
4
+ export const Container = styled.div`
5
+ display: grid;
6
+ place-items: center;
7
+ width: ${({ width }) => (width ? width : "min-content")};
8
+ min-width: min-content;
9
+
10
+ .container-modal {
11
+ .container-background {
12
+ background-color: rgba(0, 0, 0, 0.7);
13
+ }
14
+ }
15
+ `;
16
+
17
+ export const ContainerModalImg = styled.div`
18
+ width: 100vw;
19
+ height: 100vh;
20
+ display: flex;
21
+ flex-direction: column;
22
+ justify-content: center;
23
+ align-items: center;
24
+ position: relative;
25
+ background-color: transparent;
26
+
27
+ .container-header {
28
+ position: absolute;
29
+ left: 0px;
30
+ top: 0px;
31
+ width: 100%;
32
+ background-color: rgba(0, 0, 0, 0.5);
33
+ display: flex;
34
+ flex-direction: row;
35
+ justify-content: flex-end;
36
+ align-items: center;
37
+ gap: 8px;
38
+ flex-wrap: wrap;
39
+ padding: 8px 10px;
40
+
41
+ .container-btnDownload {
42
+ width: 28px;
43
+ height: 28px;
44
+ overflow: hidden;
45
+ display: grid;
46
+ place-items: center;
47
+ }
48
+ }
49
+
50
+ .container-imgModal {
51
+ width: 100%;
52
+ height: 100%;
53
+
54
+ .img {
55
+ width: 100%;
56
+ max-height: 100vh;
57
+ object-fit: contain;
58
+ }
59
+ }
60
+ `;
61
+
62
+ export const ContainerLoading = styled.div`
63
+ width: 100%;
64
+ display: grid;
65
+ place-items: center;
66
+ min-width: min-content;
67
+ font-size: ${({ sizeLoading }) => (sizeLoading ? sizeLoading : "30")}px;
68
+ color: ${({ colorLoading }) => (colorLoading ? colorLoading : "#9e2674")};
69
+ padding: 5px;
70
+ `;
71
+
72
+ export const Img = styled.img`
73
+ display: ${({ show }) => (show ? "grid" : "none")};
74
+ width: 100%;
75
+ cursor: pointer;
76
+ object-fit: contain;
77
+ `;
@@ -0,0 +1,40 @@
1
+ import { useRef } from "react";
2
+ import InputText from "./index";
3
+
4
+ export default {
5
+ title: "Components/atoms/InputText",
6
+ component: InputText,
7
+ argTypes: {
8
+ type: {
9
+ options: [undefined, "white", "gray", "black"],
10
+ control: { type: "select" },
11
+ },
12
+ borderType: {
13
+ options: [undefined, "rectangle", "oval"],
14
+ control: { type: "select" },
15
+ },
16
+ },
17
+ };
18
+
19
+ const Template = (args) => <InputText {...args} />;
20
+
21
+ export const InputTextTest = Template.bind({});
22
+ InputTextTest.args = {
23
+ type: undefined,
24
+ transparent: true,
25
+ size: "17",
26
+ borderType: undefined,
27
+ placeHolder: "ingresa el texto",
28
+ multiline: true,
29
+ maxRows: "5",
30
+ minRows: "1",
31
+ //label: "titulo",
32
+ disabled: false,
33
+ initialText: "",
34
+ onChangeText: (newText) => {
35
+ console.log(newText);
36
+ },
37
+ onEnter: (event) => {
38
+ console.log("evento enter");
39
+ },
40
+ };
@@ -0,0 +1,63 @@
1
+ import { Container } from "./styles";
2
+ import React from "react";
3
+ import { TextField } from "@mui/material";
4
+ import { useState } from "react";
5
+ import { useEffect } from "react";
6
+
7
+ export default function InputText(props) {
8
+ const {
9
+ id,
10
+ key,
11
+ className,
12
+ type, // gray | black => (default -> black)
13
+ transparent, // boolean
14
+ size, // number ... default (13)
15
+ borderType, // rectangle || circle || (cualquier otro valor -> no borde)
16
+ placeHolder, // (string) texto por defecto
17
+ multiline, // (boolean) true -> textarea false -> 1 linea
18
+ maxRows, // (number) maxima cantidad de rows visibles
19
+ minRows, // (number) cantidad de rows visibles minimos
20
+ //label, // (string) titulo del inputText
21
+ disabled, // (boolean) true -> bloqueado
22
+ text, // (string) texto del input
23
+ onChangeText, // (newText) => {}
24
+ onEnter, // (event) => {}
25
+ refInputText, // useRef()
26
+ } = props;
27
+
28
+ return (
29
+ <>
30
+ <Container
31
+ id={id}
32
+ key={key}
33
+ className={"container-inputText " + className}
34
+ borderType={borderType}
35
+ size={size}
36
+ >
37
+ <TextField
38
+ className={
39
+ "inputText " +
40
+ (["gray", "white", "black"].includes(type) ? type : "white") +
41
+ (transparent ? " transparent" : " fill")
42
+ }
43
+ multiline={multiline}
44
+ inputRef={refInputText}
45
+ disabled={disabled}
46
+ placeholder={placeHolder}
47
+ label={undefined}
48
+ minRows={minRows}
49
+ maxRows={maxRows}
50
+ variant="outlined"
51
+ value={text}
52
+ onChange={(event) => onChangeText && onChangeText(event.target.value)}
53
+ onKeyDown={(event) => {
54
+ if (event.key == "Enter" && !event.shiftKey) {
55
+ event.preventDefault();
56
+ onEnter && onEnter(event);
57
+ }
58
+ }}
59
+ />
60
+ </Container>
61
+ </>
62
+ );
63
+ }
@@ -0,0 +1,89 @@
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
+ //border: 1px solid red;
8
+
9
+ .inputText {
10
+ width: 100%;
11
+ height: 100%;
12
+
13
+ // container interno del input o textarea
14
+ > div {
15
+ min-width: 0px;
16
+ font-family: ${FontFamily.RobotoRegular}, sans-serif;
17
+ font-size: ${({ size }) => (size ? size : "13")}px;
18
+ text-align: left;
19
+ color: #a2a2a2;
20
+ padding: ${({ borderType }) => {
21
+ return ["rectangle", "oval"].includes(borderType?.toLowerCase())
22
+ ? "5px 10px"
23
+ : "0px";
24
+ }};
25
+ border-radius: ${({ borderType }) => {
26
+ return borderType?.toLowerCase() === "oval"
27
+ ? "17px"
28
+ : borderType?.toLowerCase() === "rectangle"
29
+ ? "6px"
30
+ : "0px";
31
+ }};
32
+
33
+ // input 1 linea
34
+ > input {
35
+ padding: 0px;
36
+ }
37
+
38
+ // borde
39
+ > fieldset {
40
+ border: ${({ borderType }) => {
41
+ return ["rectangle", "oval"].includes(borderType?.toLowerCase())
42
+ ? "1px solid black"
43
+ : "none";
44
+ }};
45
+ border-color: inherit;
46
+ }
47
+
48
+ &.Mui-focused {
49
+ > fieldset {
50
+ border-color: inherit;
51
+ }
52
+ }
53
+ &.Mui-disabled {
54
+ cursor: not-allowed;
55
+ * {
56
+ cursor: inherit;
57
+ }
58
+ }
59
+ }
60
+
61
+ &.fill {
62
+ &.gray > div {
63
+ background-color: #e8e5e5;
64
+ color: #262626;
65
+ border-color: #7b7979;
66
+ }
67
+ &.white > div {
68
+ background-color: white;
69
+ color: #e33aa9;
70
+ border-color: #e33aa9;
71
+ }
72
+ }
73
+
74
+ &.transparent {
75
+ > div {
76
+ background-color: transparent;
77
+ }
78
+
79
+ &.gray > div {
80
+ color: #a2a2a2;
81
+ border-color: #7b7979;
82
+ }
83
+ &.black > div {
84
+ color: #262626;
85
+ border-color: #7b7979;
86
+ }
87
+ }
88
+ }
89
+ `;
@@ -0,0 +1,19 @@
1
+ import NotFound from "./index";
2
+
3
+ export default {
4
+ title: "Components/atoms/NotFound",
5
+ component: NotFound,
6
+ argTypes: {},
7
+ };
8
+
9
+ const Template = (args) => <NotFound {...args} />;
10
+
11
+ export const NotFoundTest = Template.bind({});
12
+ NotFoundTest.args = {
13
+ code: "501",
14
+ message: "No se pudo obtener los mensajes del chat",
15
+ details: "no se encontro la cadena asociada al producto",
16
+ };
17
+
18
+ export const NotFoundDefault = Template.bind({});
19
+ NotFoundDefault.args = {};