contentoh-components-library 21.3.18 → 21.3.19

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 (196) hide show
  1. package/.env.development +0 -5
  2. package/dist/assets/images/generalButton/closeIcon.svg +2 -2
  3. package/dist/components/atoms/GeneralInput/index.js +14 -1
  4. package/dist/components/atoms/ProgressBar/index.js +6 -36
  5. package/dist/components/atoms/ProgressBar/styles.js +3 -11
  6. package/dist/components/molecules/CustomSelect/CustomSelect.stories.js +22 -21
  7. package/dist/components/molecules/CustomSelect/SelectItem.js +1 -10
  8. package/dist/components/molecules/HeaderTop/index.js +6 -23
  9. package/dist/components/molecules/HeaderTop/styles.js +1 -1
  10. package/dist/components/molecules/ProductNameHeader/index.js +4 -6
  11. package/dist/components/organisms/FullProductNameHeader/index.js +0 -1
  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 +44 -36
  15. package/dist/components/pages/RetailerProductEdition/index.js +12 -13
  16. package/dist/global-files/data.js +23 -18
  17. package/dist/global-files/fonts.css +0 -6
  18. package/dist/global-files/variables.js +0 -2
  19. package/dist/index.js +46 -267
  20. package/package.json +1 -12
  21. package/src/assets/images/generalButton/closeIcon.svg +2 -2
  22. package/src/components/atoms/GeneralInput/index.js +10 -0
  23. package/src/components/atoms/ProgressBar/index.js +5 -40
  24. package/src/components/atoms/ProgressBar/styles.js +0 -24
  25. package/src/components/molecules/CustomSelect/CustomSelect.stories.js +12 -20
  26. package/src/components/molecules/CustomSelect/SelectItem.js +0 -7
  27. package/src/components/molecules/HeaderTop/index.js +8 -29
  28. package/src/components/molecules/HeaderTop/styles.js +0 -4
  29. package/src/components/molecules/ProductNameHeader/index.js +2 -7
  30. package/src/components/organisms/FullProductNameHeader/index.js +0 -1
  31. package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +49 -67
  32. package/src/components/pages/ProviderProductEdition/index.js +9 -16
  33. package/src/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +46 -36
  34. package/src/components/pages/RetailerProductEdition/index.js +10 -14
  35. package/src/global-files/data.js +23 -18
  36. package/src/global-files/fonts.css +0 -6
  37. package/src/global-files/variables.js +0 -2
  38. package/src/index.js +0 -17
  39. package/dist/assets/images/customSelect/starIcon.svg +0 -14
  40. package/dist/assets/images/defaultImages/Spinner.gif +0 -0
  41. package/dist/assets/images/defaultImages/notFound.svg +0 -124
  42. package/dist/components/atoms/ButtonFileChooser/ButtonFileChooser.stories.js +0 -72
  43. package/dist/components/atoms/ButtonFileChooser/index.js +0 -110
  44. package/dist/components/atoms/ButtonFileChooser/styles.js +0 -20
  45. package/dist/components/atoms/ButtonV2/ButtonV2.stories.js +0 -66
  46. package/dist/components/atoms/ButtonV2/index.js +0 -110
  47. package/dist/components/atoms/ButtonV2/styles.js +0 -53
  48. package/dist/components/atoms/CustomIcon/CustomIcon.stories.js +0 -50
  49. package/dist/components/atoms/CustomIcon/index.js +0 -40
  50. package/dist/components/atoms/CustomIcon/styles.js +0 -33
  51. package/dist/components/atoms/IconFile/IconFile.stories.js +0 -48
  52. package/dist/components/atoms/IconFile/index.js +0 -249
  53. package/dist/components/atoms/IconFile/styles.js +0 -23
  54. package/dist/components/atoms/Image/Image.stories.js +0 -73
  55. package/dist/components/atoms/Image/index.js +0 -76
  56. package/dist/components/atoms/Image/styles.js +0 -43
  57. package/dist/components/atoms/ImageLink/ImageLink.stories.js +0 -63
  58. package/dist/components/atoms/ImageLink/index.js +0 -77
  59. package/dist/components/atoms/ImageLink/styles.js +0 -40
  60. package/dist/components/atoms/ImagePreview/ImagePreview.stories.js +0 -70
  61. package/dist/components/atoms/ImagePreview/index.js +0 -208
  62. package/dist/components/atoms/ImagePreview/styles.js +0 -44
  63. package/dist/components/atoms/InputText/InputText.stories.js +0 -60
  64. package/dist/components/atoms/InputText/index.js +0 -66
  65. package/dist/components/atoms/InputText/styles.js +0 -32
  66. package/dist/components/atoms/NotFound/NotFound.stories.js +0 -36
  67. package/dist/components/atoms/NotFound/index.js +0 -75
  68. package/dist/components/atoms/NotFound/styles.js +0 -20
  69. package/dist/components/atoms/SelectItemV2/SelectItemV2.stories.js +0 -45
  70. package/dist/components/atoms/SelectItemV2/index.js +0 -57
  71. package/dist/components/atoms/SelectItemV2/styles.js +0 -30
  72. package/dist/components/atoms/Tooltip/Tooltip.stories.js +0 -66
  73. package/dist/components/atoms/Tooltip/index.js +0 -72
  74. package/dist/components/atoms/Tooltip/styles.js +0 -20
  75. package/dist/components/molecules/ButtonDownloadFile/DownloadFile.stories.js +0 -66
  76. package/dist/components/molecules/ButtonDownloadFile/index.js +0 -179
  77. package/dist/components/molecules/ButtonDownloadFile/styles.js +0 -23
  78. package/dist/components/molecules/Dropdown/Dropdown.stories.js +0 -98
  79. package/dist/components/molecules/Dropdown/index.js +0 -150
  80. package/dist/components/molecules/Dropdown/styles.js +0 -26
  81. package/dist/components/molecules/ImageTooltip/ImageTooltip.stories.js +0 -82
  82. package/dist/components/molecules/ImageTooltip/index.js +0 -85
  83. package/dist/components/molecules/ImageTooltip/styles.js +0 -33
  84. package/dist/components/molecules/SelectV2/SelectV2.stories.js +0 -120
  85. package/dist/components/molecules/SelectV2/index.js +0 -306
  86. package/dist/components/molecules/SelectV2/styles.js +0 -42
  87. package/dist/components/molecules/SelectV2/test.js +0 -95
  88. package/dist/components/molecules/SelectV2/test.stories.js +0 -27
  89. package/dist/components/organisms/Chat/Chat.stories.js +0 -160
  90. package/dist/components/organisms/Chat/ChatLists/ChatLists.stories.js +0 -83
  91. package/dist/components/organisms/Chat/ChatLists/index.js +0 -160
  92. package/dist/components/organisms/Chat/ChatLists/styles.js +0 -29
  93. package/dist/components/organisms/Chat/ContainerItems/ContainerItems.stories.js +0 -176
  94. package/dist/components/organisms/Chat/ContainerItems/index.js +0 -537
  95. package/dist/components/organisms/Chat/ContainerItems/styles.js +0 -20
  96. package/dist/components/organisms/Chat/ContentChat/ContentChat.stories.js +0 -142
  97. package/dist/components/organisms/Chat/ContentChat/index.js +0 -1429
  98. package/dist/components/organisms/Chat/ContentChat/styles.js +0 -20
  99. package/dist/components/organisms/Chat/Footer/Footer.stories.js +0 -43
  100. package/dist/components/organisms/Chat/Footer/index.js +0 -976
  101. package/dist/components/organisms/Chat/Footer/styles.js +0 -32
  102. package/dist/components/organisms/Chat/Header/Header.stories.js +0 -96
  103. package/dist/components/organisms/Chat/Header/index.js +0 -84
  104. package/dist/components/organisms/Chat/Header/styles.js +0 -20
  105. package/dist/components/organisms/Chat/index.js +0 -253
  106. package/dist/components/organisms/Chat/styles.js +0 -29
  107. package/dist/components/organisms/Modal/Modal.stories.js +0 -66
  108. package/dist/components/organisms/Modal/index.js +0 -95
  109. package/dist/components/organisms/Modal/styles.js +0 -20
  110. package/dist/components/organisms/RangeCalendar/RangeCalendar.stories.js +0 -33
  111. package/dist/components/organisms/RangeCalendar/index.js +0 -149
  112. package/dist/components/organisms/RangeCalendar/styles.js +0 -27
  113. package/dist/global-files/handle_http.js +0 -381
  114. package/dist/global-files/handle_userTech.js +0 -20
  115. package/dist/global-files/utils.js +0 -514
  116. package/src/assets/images/customSelect/starIcon.svg +0 -14
  117. package/src/assets/images/defaultImages/Spinner.gif +0 -0
  118. package/src/assets/images/defaultImages/notFound.svg +0 -124
  119. package/src/components/atoms/ButtonFileChooser/ButtonFileChooser.stories.js +0 -47
  120. package/src/components/atoms/ButtonFileChooser/index.js +0 -68
  121. package/src/components/atoms/ButtonFileChooser/styles.js +0 -4
  122. package/src/components/atoms/ButtonV2/ButtonV2.stories.js +0 -53
  123. package/src/components/atoms/ButtonV2/index.js +0 -85
  124. package/src/components/atoms/ButtonV2/styles.js +0 -217
  125. package/src/components/atoms/CustomIcon/CustomIcon.stories.js +0 -36
  126. package/src/components/atoms/CustomIcon/index.js +0 -41
  127. package/src/components/atoms/CustomIcon/styles.js +0 -85
  128. package/src/components/atoms/IconFile/IconFile.stories.js +0 -35
  129. package/src/components/atoms/IconFile/index.js +0 -119
  130. package/src/components/atoms/IconFile/styles.js +0 -67
  131. package/src/components/atoms/Image/Image.stories.js +0 -51
  132. package/src/components/atoms/Image/index.js +0 -55
  133. package/src/components/atoms/Image/styles.js +0 -34
  134. package/src/components/atoms/ImageLink/ImageLink.stories.js +0 -43
  135. package/src/components/atoms/ImageLink/index.js +0 -57
  136. package/src/components/atoms/ImageLink/styles.js +0 -30
  137. package/src/components/atoms/ImagePreview/ImagePreview.stories.js +0 -52
  138. package/src/components/atoms/ImagePreview/index.js +0 -178
  139. package/src/components/atoms/ImagePreview/styles.js +0 -77
  140. package/src/components/atoms/InputText/InputText.stories.js +0 -39
  141. package/src/components/atoms/InputText/index.js +0 -61
  142. package/src/components/atoms/InputText/styles.js +0 -89
  143. package/src/components/atoms/NotFound/NotFound.stories.js +0 -19
  144. package/src/components/atoms/NotFound/index.js +0 -52
  145. package/src/components/atoms/NotFound/styles.js +0 -55
  146. package/src/components/atoms/SelectItemV2/SelectItemV2.stories.js +0 -26
  147. package/src/components/atoms/SelectItemV2/index.js +0 -61
  148. package/src/components/atoms/SelectItemV2/styles.js +0 -90
  149. package/src/components/atoms/Tooltip/Tooltip.stories.js +0 -51
  150. package/src/components/atoms/Tooltip/index.js +0 -59
  151. package/src/components/atoms/Tooltip/styles.js +0 -42
  152. package/src/components/molecules/ButtonDownloadFile/DownloadFile.stories.js +0 -54
  153. package/src/components/molecules/ButtonDownloadFile/index.js +0 -109
  154. package/src/components/molecules/ButtonDownloadFile/styles.js +0 -66
  155. package/src/components/molecules/Dropdown/Dropdown.stories.js +0 -103
  156. package/src/components/molecules/Dropdown/index.js +0 -150
  157. package/src/components/molecules/Dropdown/styles.js +0 -75
  158. package/src/components/molecules/ImageTooltip/ImageTooltip.stories.js +0 -68
  159. package/src/components/molecules/ImageTooltip/index.js +0 -63
  160. package/src/components/molecules/ImageTooltip/styles.js +0 -18
  161. package/src/components/molecules/SelectV2/SelectV2.stories.js +0 -115
  162. package/src/components/molecules/SelectV2/index.js +0 -357
  163. package/src/components/molecules/SelectV2/styles.js +0 -105
  164. package/src/components/molecules/SelectV2/test.js +0 -61
  165. package/src/components/molecules/SelectV2/test.stories.js +0 -10
  166. package/src/components/organisms/Chat/Chat.stories.js +0 -147
  167. package/src/components/organisms/Chat/ChatLists/ChatLists.stories.js +0 -65
  168. package/src/components/organisms/Chat/ChatLists/Rotoplas.jpeg +0 -0
  169. package/src/components/organisms/Chat/ChatLists/THD.png +0 -0
  170. package/src/components/organisms/Chat/ChatLists/index.js +0 -141
  171. package/src/components/organisms/Chat/ChatLists/styles.js +0 -162
  172. package/src/components/organisms/Chat/ContainerItems/ContainerItems.stories.js +0 -142
  173. package/src/components/organisms/Chat/ContainerItems/index.js +0 -512
  174. package/src/components/organisms/Chat/ContainerItems/styles.js +0 -328
  175. package/src/components/organisms/Chat/ContentChat/ContentChat.stories.js +0 -102
  176. package/src/components/organisms/Chat/ContentChat/Rotoplas.jpeg +0 -0
  177. package/src/components/organisms/Chat/ContentChat/THD.png +0 -0
  178. package/src/components/organisms/Chat/ContentChat/index.js +0 -897
  179. package/src/components/organisms/Chat/ContentChat/styles.js +0 -41
  180. package/src/components/organisms/Chat/Footer/Footer.stories.js +0 -22
  181. package/src/components/organisms/Chat/Footer/index.js +0 -661
  182. package/src/components/organisms/Chat/Footer/styles.js +0 -286
  183. package/src/components/organisms/Chat/Header/Header.stories.js +0 -66
  184. package/src/components/organisms/Chat/Header/index.js +0 -94
  185. package/src/components/organisms/Chat/Header/styles.js +0 -49
  186. package/src/components/organisms/Chat/index.js +0 -235
  187. package/src/components/organisms/Chat/styles.js +0 -42
  188. package/src/components/organisms/Modal/Modal.stories.js +0 -55
  189. package/src/components/organisms/Modal/index.js +0 -97
  190. package/src/components/organisms/Modal/styles.js +0 -103
  191. package/src/components/organisms/RangeCalendar/RangeCalendar.stories.js +0 -16
  192. package/src/components/organisms/RangeCalendar/index.js +0 -121
  193. package/src/components/organisms/RangeCalendar/styles.js +0 -883
  194. package/src/global-files/handle_http.js +0 -225
  195. package/src/global-files/handle_userTech.js +0 -7
  196. package/src/global-files/utils.js +0 -330
@@ -1,235 +0,0 @@
1
- import {
2
- ContainerBtnPopUpChat,
3
- ContainerFixed,
4
- ContainerPopUp,
5
- } from "./styles";
6
- import { useEffect, useState } from "react";
7
- import { ButtonV2 } from "../../atoms/ButtonV2";
8
- import { ContentChat } from "./ContentChat";
9
- import { faComments as IconChat } from "@fortawesome/free-solid-svg-icons";
10
- import { Slide } from "@mui/material";
11
- import {
12
- isStringEmpty,
13
- isValidNaturalNumber,
14
- } from "../../../global-files/utils";
15
-
16
- export const Chat = (props) => {
17
- const {
18
- chatType, // "merchant_product" | "order_product" | "ticket"
19
- chatContainerType, // ("fixed") | ("popUp")
20
- chatData, // {} => aqui poner los datos requeridos segun el tipo de chat
21
- classNameContainerFixed, // clases CSS del envoltoria chat fixed
22
- size = 14, // tamaño del icono
23
- } = props;
24
- const [showPopUpChat, setShowPopUpChat] = useState(false);
25
- const [data, setData] = useState();
26
-
27
- useEffect(() => {
28
- switch (chatType) {
29
- case "merchant_product":
30
- validateChatMerchantProduct();
31
- break;
32
- case "order_product":
33
- validateChatOrderProduct();
34
- break;
35
- case "ticket":
36
- validateChatTicket();
37
- break;
38
- default:
39
- setData({
40
- code: 404,
41
- message: `El tipo de chat especificado "${chatType}" no es valido`,
42
- errorDetail: "",
43
- });
44
- }
45
- }, [chatType]);
46
-
47
- const isValidGeneral = (userToken, id) => {
48
- // validar token del user
49
- if (isStringEmpty(userToken)) {
50
- setDataError("El token del usuario no es valido");
51
- return false;
52
- }
53
- // validar ID del producto
54
- if (!isValidNaturalNumber(id)) {
55
- setDataError("El ID del producto no es valido");
56
- return false;
57
- }
58
- return true;
59
- };
60
-
61
- // validar props que se requieren para el tipo de chat "order_product"
62
- const validateChatOrderProduct = () => {
63
- const {
64
- userToken, // string
65
- id, // number
66
- orderId, // number
67
- retailerId, // number
68
- } = chatData;
69
-
70
- if (!isValidGeneral(userToken, id)) return;
71
-
72
- // validar el ID de la OT en donde se encuentra el producto
73
- if (!isValidNaturalNumber(orderId)) {
74
- setDataError("El ID de la orden del producto no es valido");
75
- return;
76
- }
77
- // validar el ID de la cadena asociada al producto en la OT
78
- if (!isValidNaturalNumber(retailerId)) {
79
- setDataError("La cadena relacionada al producto no es valida");
80
- return;
81
- }
82
- setData({
83
- userToken,
84
- id,
85
- orderId,
86
- retailerId,
87
- });
88
- };
89
-
90
- // validar props que se requieren para el tipo de chat "merchants_product"
91
- const validateChatMerchantProduct = () => {
92
- const {
93
- userToken, // string
94
- id, // number
95
- version, // number
96
- } = chatData;
97
-
98
- if (!isValidGeneral(userToken, id)) return;
99
-
100
- // validar la version del producto
101
- if (!isValidNaturalNumber(version)) {
102
- setDataError("La version del producto no es valida");
103
- return;
104
- }
105
- setData({
106
- userToken,
107
- id,
108
- version,
109
- });
110
- };
111
-
112
- // validar props que se requieren para el tipo de chat "ticket"
113
- const validateChatTicket = () => {
114
- const {
115
- currentUser /* {
116
- token, // string
117
- id: number ,
118
- companyId: number ,
119
- isUserTech: boolean ,
120
- } */,
121
- id, // number
122
- statusTicket, // (string) "IN_PROGRESS" | "PENDING" | "COMPLETED"
123
- ticketOwnerUserId, // number
124
- } = chatData;
125
-
126
- // validar el token del usuario conectado
127
- if (isStringEmpty(currentUser?.token)) {
128
- setDataError("Tu identificación de usuario no fue especificado");
129
- return;
130
- }
131
- // validar si ID del usuario conectado
132
- if (!isValidNaturalNumber(currentUser?.id)) {
133
- setDataError("Tu ID de usuario no fue especificado");
134
- return;
135
- }
136
- // validar si ID de la compañia del usuario conectado
137
- if (!isValidNaturalNumber(currentUser?.companyId)) {
138
- setDataError("El ID de tu compañia no fue especificado");
139
- return;
140
- }
141
- // validar si el usuario conectado es de tecnologia o no
142
- if (![false, true].includes(currentUser?.isUserTech)) {
143
- setDataError("Tu tipo de usuario no fue especificado");
144
- return;
145
- }
146
- // validar ID del ticket
147
- if (!isValidNaturalNumber(id)) {
148
- setDataError("El ID del ticket no es valido");
149
- return;
150
- }
151
- // validar ID del usuario que creó el ticket
152
- if (!isValidNaturalNumber(ticketOwnerUserId)) {
153
- setDataError(
154
- "El ID del usuario al que le pertenece el ticket no es valido"
155
- );
156
- return;
157
- }
158
- // validar el status del chat
159
- if (!["IN_PROGRESS", "PENDING", "COMPLETED"].includes(statusTicket)) {
160
- setDataError("El estatus del ticket no es valido");
161
- return;
162
- }
163
- let statusChat = "open";
164
- if (statusTicket === "COMPLETED") statusChat = "closed";
165
-
166
- // convertir user TECH a NORMAL si es el propietario del ticket
167
- let isUserTech = currentUser.isUserTech;
168
- if (isUserTech && currentUser.id == ticketOwnerUserId) {
169
- isUserTech = false;
170
- }
171
- setData({
172
- currentUser: {
173
- ...currentUser,
174
- isUserTech,
175
- },
176
- id,
177
- statusChat,
178
- });
179
- };
180
-
181
- const setDataError = (errorDetail) => {
182
- setData({
183
- code: 404,
184
- message: `No se especificaron algunos datos requeridos para el tipo de chat "${chatType}"`,
185
- errorDetail,
186
- });
187
- };
188
-
189
- if (chatContainerType?.toLowerCase() === "fixed") {
190
- /* chat tipo fixed */
191
- return (
192
- <ContainerFixed className={classNameContainerFixed}>
193
- <ContentChat
194
- chatType={chatType?.toLowerCase()}
195
- chatContainerType="fixed"
196
- dataChat={data}
197
- showBtnClose={false}
198
- />
199
- </ContainerFixed>
200
- );
201
- } else {
202
- /* chat tipo popUp */
203
- return (
204
- <>
205
- <ContainerBtnPopUpChat>
206
- <ButtonV2
207
- className="container-btn-popUpChat"
208
- type="whiteS2"
209
- size={size}
210
- borderType="circle"
211
- icon={IconChat}
212
- onClick={() => {
213
- setShowPopUpChat(!showPopUpChat);
214
- }}
215
- />
216
- </ContainerBtnPopUpChat>
217
-
218
- <Slide direction="left" in={showPopUpChat} timeout={400}>
219
- <ContainerPopUp>
220
- <ContentChat
221
- chatType={chatType?.toLowerCase()}
222
- chatContainerType="popUp"
223
- dataChat={data}
224
- showPopUpChat={showPopUpChat}
225
- showBtnClose={true}
226
- onClickBtnClose={() => {
227
- setShowPopUpChat(false);
228
- }}
229
- />
230
- </ContainerPopUp>
231
- </Slide>
232
- </>
233
- );
234
- }
235
- };
@@ -1,42 +0,0 @@
1
- import styled from "styled-components";
2
- import { GlobalColors, FontFamily } from "../../../global-files/variables";
3
-
4
- // Container para chat fixed
5
- export const ContainerFixed = styled.div`
6
- width: auto;
7
- max-width: 550px;
8
- min-width: 325px;
9
- height: 100%;
10
- flex-grow: 2;
11
- background-color: white;
12
- border: 1px solid #f0f0f0;
13
- z-index: 1000;
14
- padding: 0px;
15
- `;
16
-
17
- export const ContainerBtnPopUpChat = styled.div`
18
- border-radius: 50%;
19
- height: 34px;
20
- width: 34px;
21
-
22
- .container-btn-popUpChat {
23
- height: inherit;
24
- width: inherit;
25
- overflow: hidden;
26
- }
27
- `;
28
-
29
- export const ContainerPopUp = styled.div`
30
- position: fixed;
31
- top: 20px;
32
- right: 23px;
33
- bottom: 20px;
34
- box-shadow: 0px 2px 10px 0px #00000073;
35
- z-index: 1000;
36
- width: calc(100% - 50px);
37
- max-width: 550px;
38
- min-width: 325px;
39
- border-radius: 10px;
40
- background: white;
41
- padding: 0px;
42
- `;
@@ -1,55 +0,0 @@
1
- import { Modal } from "./index";
2
- import { ButtonV2 } from "../../atoms/ButtonV2";
3
-
4
- export default {
5
- title: "Components/organisms/Modal",
6
- component: Modal,
7
- argTypes: {
8
- icon: {
9
- options: [undefined, "error", "warning", "success", "info"],
10
- control: { type: "select" },
11
- },
12
- },
13
- };
14
-
15
- const Template = (args) => <Modal {...args} />;
16
-
17
- export const modalDefault = Template.bind({});
18
- modalDefault.args = {
19
- show: false,
20
- title: "Titulo del modal",
21
- icon: undefined,
22
- message: `descripcion amplia sobre el componente
23
- modal white para saber como se ven varias lineas
24
- de codigo`,
25
- };
26
-
27
- export const modalWithButtons = Template.bind({});
28
- modalWithButtons.args = {
29
- show: false,
30
- title: "Titulo del modal",
31
- icon: undefined,
32
- message: `descripcion amplia sobre el componente
33
- modal white para saber como se ven varias lineas
34
- de codigo`,
35
- buttons: [
36
- <ButtonV2
37
- key={"btn-Cancelar"}
38
- type={"white"}
39
- label={"Cancelar"}
40
- size={12}
41
- onClick={(event) => {
42
- alert("cancelar");
43
- }}
44
- />,
45
- <ButtonV2
46
- key={"btn-Aceptar"}
47
- type={"pink"}
48
- label={"Aceptar"}
49
- size={12}
50
- onClick={(event) => {
51
- alert("aceptar");
52
- }}
53
- />,
54
- ],
55
- };
@@ -1,97 +0,0 @@
1
- import React, { useEffect, useState } from "react";
2
- import { ContainerModal } from "./styles";
3
- import {
4
- faClose as xIcon,
5
- faExclamationTriangle as warningIcon,
6
- faCheck as successIcon,
7
- faExclamation as infoIcon,
8
- } from "@fortawesome/free-solid-svg-icons";
9
- import { FontAwesomeIcon as Icon } from "@fortawesome/react-fontawesome";
10
- import { Fade, Grow, Zoom, Modal as ModalMUI, Backdrop } from "@mui/material";
11
- import { ButtonV2 } from "../../atoms/ButtonV2";
12
- import { CustomIcon } from "../../atoms/CustomIcon";
13
-
14
- export const Modal = (props) => {
15
- const {
16
- className, // clases CSS del componente raiz del modal
17
- show, // boolean
18
- title, // string
19
- message, // string
20
- icon, // "error" | "warning" | "success" | "info" | (por default no icon)
21
- customComponent, // JSX
22
- buttons, // array<JSX>
23
- onClickModal, // (event) => {}
24
- onClickBtnDefault, // (event) => {}
25
- } = props;
26
- const icons = {
27
- error: xIcon,
28
- warning: warningIcon,
29
- info: infoIcon,
30
- success: successIcon,
31
- };
32
-
33
- return (
34
- <Backdrop
35
- open={show}
36
- className="container-backgroundModal"
37
- timeout={400}
38
- style={{
39
- backgroundColor: "transparent",
40
- zIndex: 10,
41
- }}
42
- onClick={(event) => onClickModal && onClickModal(event)}
43
- >
44
- <Fade in={show} timeout={400}>
45
- <ContainerModal className={className ? className : ""}>
46
- <div className="contentModal">
47
- <header>
48
- {/* titulo */}
49
- {![null, undefined, ""].includes(title?.trim()) && (
50
- <label className="label-title">{title.trim()}</label>
51
- )}
52
- </header>
53
-
54
- {/* icono modal */}
55
- {icons[icon?.toLowerCase()] && (
56
- <CustomIcon
57
- type={"white"}
58
- className={"iconModal " + "iconModal-" + icon.toLowerCase()}
59
- size={35}
60
- borderType={"circle"}
61
- icon={icons[icon.toLowerCase()]}
62
- />
63
- )}
64
-
65
- {/* label message */}
66
- {![null, undefined, ""].includes(message?.trim()) && (
67
- <label className="label-message"> {message.trim()} </label>
68
- )}
69
-
70
- {/* custom component */}
71
- {customComponent && (
72
- <div className="container-customComponent">{customComponent}</div>
73
- )}
74
-
75
- {/* container buttons */}
76
- <div className="container-buttons">
77
- {buttons?.length ? (
78
- buttons
79
- ) : (
80
- <ButtonV2
81
- key={"btn-Aceptar"}
82
- type={"white"}
83
- borderType={"oval"}
84
- label={"Aceptar"}
85
- size={12}
86
- onClick={(event) =>
87
- onClickBtnDefault && onClickBtnDefault(event)
88
- }
89
- />
90
- )}
91
- </div>
92
- </div>
93
- </ContainerModal>
94
- </Fade>
95
- </Backdrop>
96
- );
97
- };
@@ -1,103 +0,0 @@
1
- import styled from "styled-components";
2
- import { FontFamily } from "../../../global-files/variables";
3
-
4
- export const ContainerModal = styled.div`
5
- width: 100%;
6
- height: 100%;
7
- overflow: auto;
8
- display: grid;
9
- place-items: center;
10
- background-color: rgba(0, 0, 0, 0.4);
11
-
12
- .contentModal {
13
- width: fit-content;
14
- max-width: 80%;
15
- min-width: 80px;
16
- height: fit-content;
17
- max-height: 90%;
18
- min-height: 120px;
19
- display: flex;
20
- flex-direction: column;
21
- align-items: center;
22
- background-color: white;
23
- border-radius: 10px;
24
- padding: 25px 25px 20px 25px;
25
- box-shadow: 0px 2px 4px 0px #00000040;
26
-
27
- header {
28
- width: 100%;
29
- display: flex;
30
- flex-direction: row;
31
- align-items: center;
32
- justify-content: flex-start;
33
- gap: 6px;
34
- margin-bottom: 20px;
35
-
36
- .label-title {
37
- width: 100%;
38
- text-align: center;
39
- font-family: ${FontFamily.RobotoMedium}, sans-serif;
40
- font-size: 17px;
41
- line-height: 1.2;
42
- color: #262626;
43
- white-space: pre-wrap;
44
- }
45
- }
46
-
47
- .iconModal {
48
- width: 50px;
49
- height: 50px;
50
- font-size: 30px;
51
- border-width: 4px;
52
- margin-bottom: 20px;
53
- overflow: hidden;
54
-
55
- &.iconModal-error {
56
- background-color: #953737;
57
- border-color: #953737;
58
- color: white;
59
- }
60
- &.iconModal-warning {
61
- font-size: 27px;
62
- padding-bottom: 8px;
63
- color: #af9647;
64
- border-color: #af9647;
65
- }
66
- &.iconModal-info {
67
- border-color: #9e3e26;
68
- color: #9e3e26;
69
- }
70
- &.iconModal-success {
71
- }
72
- }
73
-
74
- .label-message {
75
- width: 100%;
76
- text-align: center;
77
- font-family: ${FontFamily.RobotoRegular}, sans-serif;
78
- font-size: 13px;
79
- color: #707070;
80
- white-space: pre-wrap;
81
- }
82
-
83
- .container-customComponent {
84
- width: 100%;
85
- max-height: 50vh;
86
- display: flex;
87
- flex-direction: column;
88
- margin-top: 20px;
89
- padding: 0px 0px;
90
- //border: 1px solid red;
91
- }
92
-
93
- .container-buttons {
94
- width: 100%;
95
- display: flex;
96
- flex-direction: row;
97
- justify-content: center;
98
- gap: 12px;
99
- margin-top: 20px;
100
- //border: 1px solid red;
101
- }
102
- }
103
- `;
@@ -1,16 +0,0 @@
1
- import { RangeCalendar } from ".";
2
-
3
- export default {
4
- title: "Components/organisms/RangeCalendar",
5
- component: RangeCalendar,
6
- };
7
-
8
- const Template = (args) => <RangeCalendar {...args} />;
9
-
10
- export const DefaultRangeCalendar = Template.bind({});
11
- DefaultRangeCalendar.args = {
12
- currentDates: {
13
- start: "2022-12-15T00:00:00.000Z",
14
- end: "2022-12-25T00:00:00.000Z",
15
- },
16
- };
@@ -1,121 +0,0 @@
1
- import { Container, CalendarContainer } from "./styles";
2
- import { useState } from "react";
3
- import DatePicker, { registerLocale, setDefaultLocale } from "react-datepicker";
4
- import es from "date-fns/locale/es";
5
- import { useCloseModal } from "../../../global-files/customHooks";
6
- import { useEffect } from "react";
7
- import { getFormatedDate } from "../../../global-files/utils";
8
- registerLocale("es", es);
9
-
10
- export const RangeCalendar = ({
11
- setParameterArray,
12
- minDate = new Date(),
13
- currentDates,
14
- label = "Elige las fechas",
15
- calendarId = "calendar-id",
16
- }) => {
17
- const [startDate, setStartDate] = useState(new Date());
18
- const [endDate, setEndDate] = useState(new Date());
19
- const [showCalendar, setShowCalendar] = useCloseModal(calendarId);
20
- useEffect(() => {
21
- if (currentDates) {
22
- setStartDate(new Date(currentDates.start));
23
- setEndDate(new Date(currentDates.end));
24
- }
25
- }, [currentDates]);
26
- const onChange = (dates) => {
27
- const [start, end] = dates;
28
- setStartDate(start);
29
- setEndDate(end);
30
- if (end) {
31
- setParameterArray &&
32
- setParameterArray((current) => {
33
- return {
34
- ...current,
35
- estimatedStartDate: getFormatedDate(new Date(start), "-"),
36
- estimatedDate: getFormatedDate(new Date(end), "-"),
37
- };
38
- });
39
- }
40
- };
41
- return (
42
- <Container>
43
- <div
44
- className="calendar-dropdown"
45
- onClick={(e) => {
46
- e.stopPropagation();
47
- setShowCalendar(true);
48
- }}
49
- >
50
- <p>{label}</p>
51
- <div className="arrow-item">&#9664;</div>
52
- </div>
53
- {showCalendar && (
54
- <CalendarContainer id={calendarId}>
55
- <DatePicker
56
- selected={startDate}
57
- onChange={onChange}
58
- startDate={startDate}
59
- endDate={endDate}
60
- renderCustomHeader={({
61
- monthDate,
62
- customHeaderCount,
63
- decreaseMonth,
64
- increaseMonth,
65
- }) => (
66
- <div>
67
- <button
68
- aria-label="Previous Month"
69
- className={
70
- "react-datepicker__navigation react-datepicker__navigation--previous"
71
- }
72
- style={
73
- customHeaderCount === 1 ? { visibility: "hidden" } : null
74
- }
75
- onClick={decreaseMonth}
76
- >
77
- <span
78
- className={
79
- "react-datepicker__navigation-icon react-datepicker__navigation-icon--previous"
80
- }
81
- >
82
- {"<"}
83
- </span>
84
- </button>
85
- <span className="react-datepicker__current-month">
86
- {monthDate.toLocaleString("es-Es", {
87
- month: "long",
88
- year: "numeric",
89
- })}
90
- </span>
91
- <button
92
- aria-label="Next Month"
93
- className={
94
- "react-datepicker__navigation react-datepicker__navigation--next"
95
- }
96
- style={
97
- customHeaderCount === 0 ? { visibility: "hidden" } : null
98
- }
99
- onClick={increaseMonth}
100
- >
101
- <span
102
- className={
103
- "react-datepicker__navigation-icon react-datepicker__navigation-icon--next"
104
- }
105
- >
106
- {">"}
107
- </span>
108
- </button>
109
- </div>
110
- )}
111
- monthsShown={2}
112
- selectsRange
113
- inline
114
- minDate={minDate}
115
- locale="es"
116
- />
117
- </CalendarContainer>
118
- )}
119
- </Container>
120
- );
121
- };