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,512 +0,0 @@
1
- import { Container } from "./styles";
2
- import { useEffect, useState } from "react";
3
- import { getProfilePicture } from "../../../../global-files/data";
4
- import { ImageTooltip } from "../../../molecules/ImageTooltip";
5
- import {
6
- decodeJSON,
7
- getFullDate,
8
- getImageURL,
9
- getResizeImgHeight,
10
- getTime,
11
- } from "../../../../global-files/utils";
12
- import {
13
- faUser as IconUser,
14
- faImage as IconImage,
15
- faRedoAlt as IconReload,
16
- } from "@fortawesome/free-solid-svg-icons";
17
- import { CustomIcon } from "../../../atoms/CustomIcon";
18
- import { ButtonV2 } from "../../../atoms/ButtonV2";
19
- import { ButtonDownloadFile } from "../../../molecules/ButtonDownloadFile";
20
- import { Modal } from "../../Modal";
21
- import { Tooltip } from "../../../atoms/Tooltip";
22
- import { Slide, Zoom } from "@mui/material";
23
- import { useRef } from "react";
24
- import { ImagePreview } from "../../../atoms/ImagePreview";
25
- import { isUserTech } from "../../../../global-files/handle_userTech";
26
-
27
- export const ContainerItems = (props) => {
28
- const {
29
- items /* [
30
- { id , date , type , value , userId } ,
31
- ...
32
- ] */,
33
- users /* {
34
- id: { name , companyId } ,
35
- ...
36
- } */,
37
- currentUser, // { id , companyId , ... }
38
- activeCompanyId, // number
39
- chatType, // string
40
- showBtnLoadMore, // boolean
41
- onClickBtnLoadMore, // () => {}
42
- } = props;
43
- const [scrollHeight, setScrollHeight] = useState(0);
44
- const [btnLoadMoreLoading, setBtnLoadMoreLoading] = useState(false);
45
- const [customItems, setCustomItems] = useState([]);
46
- const [modalAlert, setModalAlert] = useState({
47
- show: false,
48
- title: "",
49
- message: "",
50
- });
51
- const containerList = useRef(null);
52
-
53
-
54
- useEffect(() => {
55
- if (!items) return;
56
- if (["merchant_product", "order_product"].includes(chatType)) renderItems();
57
- else if (chatType === "ticket") renderItemsTicket();
58
- else setCustomItems([]);
59
- }, [items]);
60
-
61
- const updateScroll = () => {
62
- const containerScroll = document.getElementById("containerItems");
63
- if (containerScroll) {
64
- const newScrollHeight = containerScroll.scrollHeight + 15;
65
- const positionScroll = newScrollHeight - scrollHeight;
66
-
67
- if (newScrollHeight !== scrollHeight) {
68
- containerScroll.scrollTop = positionScroll;
69
- setScrollHeight(newScrollHeight);
70
- }
71
- }
72
- };
73
-
74
- const renderGrayLabel = (text, key) => {
75
- return (
76
- <Zoom
77
- in={true}
78
- timeout={600}
79
- container={containerList.current}
80
- key={key ?? ""}
81
- >
82
- <li className={`label-gray`}>
83
- <div className="separator"></div>
84
- <label>{text}</label>
85
- <div className="separator"></div>
86
- </li>
87
- </Zoom>
88
- );
89
- };
90
-
91
- const renderStatusService = (text, key) => {
92
- return (
93
- <Zoom
94
- in={true}
95
- timeout={600}
96
- container={containerList.current}
97
- key={key ?? ""}
98
- >
99
- <div className="label-statusService">{text}</div>
100
- </Zoom>
101
- );
102
- };
103
-
104
- const renderStatusArticle = (text, key) => {
105
- return (
106
- <Zoom
107
- in={true}
108
- timeout={600}
109
- container={containerList.current}
110
- key={key ?? ""}
111
- >
112
- <div className="label-statusArticle">{text}</div>
113
- </Zoom>
114
- );
115
- };
116
-
117
- const renderStatusTicket = (item) => {
118
- return <label className="item-statusTicket">{item.value}</label>;
119
- };
120
-
121
- const renderStatusTicketNeutral = (item) => {
122
- return (
123
- <Tooltip
124
- componentTooltip={<label>{users[item.userId].name}</label>}
125
- className="itemStatus ticket"
126
- position={"topCenter"}
127
- addArrow={false}
128
- transitionType={"zoom"}
129
- followCursor={false}
130
- >
131
- {item.value}
132
- </Tooltip>
133
- );
134
- };
135
-
136
- const renderMessage = (item) => {
137
- return <label className="item-message"> {item.value} </label>;
138
- };
139
-
140
- const renderComment = (item) => {
141
- return <label className="item-comment"> {item.value} </label>;
142
- };
143
-
144
- const renderImg = (item) => {
145
- const value = decodeJSON(item.value);
146
- const originalImgURL = `${process.env.REACT_APP_IMAGES_ENDPOINT}/${value.key}`;
147
- // dimensiones de la imagen a mostrar en el chat
148
- const imgHeight = getResizeImgHeight(
149
- value.width ?? 400,
150
- value.height ?? 400,
151
- 400
152
- );
153
- const imgURL = getImageURL(
154
- process.env.REACT_APP_IMAGES_BUCKET,
155
- value.key,
156
- 400,
157
- imgHeight
158
- );
159
- // dimensiones de la imagen a mostrar en modal full
160
- const modalImgHeight = getResizeImgHeight(
161
- value.width ?? screen.width,
162
- value.height ?? screen.height,
163
- screen.width
164
- );
165
- const modalImgURL = getImageURL(
166
- process.env.REACT_APP_IMAGES_BUCKET,
167
- value.key,
168
- screen.width,
169
- modalImgHeight
170
- );
171
-
172
- return (
173
- <div className="item-img">
174
- <ImagePreview
175
- className="container-ImagePreview"
176
- width={"100%"}
177
- sizeLoading={35}
178
- colorLoading={undefined}
179
- imgURL={imgURL}
180
- modalImgURL={modalImgURL}
181
- downloadImgURL={originalImgURL}
182
- imageName={value.name}
183
- showButtonDownload={true}
184
- componentDefault={
185
- <Tooltip
186
- componentTooltip={<label>{value.name}</label>}
187
- className="label-nameImg"
188
- position={"topCenter"}
189
- addArrow={false}
190
- transitionType={"zoom"}
191
- followCursor={false}
192
- >
193
- <CustomIcon
194
- className="iconDefaultImg"
195
- type={"white"}
196
- size={60}
197
- borderType={"rectangle"}
198
- icon={IconImage}
199
- />
200
- </Tooltip>
201
- }
202
- componentDefaultModal={
203
- <Tooltip
204
- componentTooltip={<label>{value.name}</label>}
205
- className="label-nameImgModal"
206
- position={"topCenter"}
207
- addArrow={false}
208
- transitionType={"zoom"}
209
- followCursor={false}
210
- >
211
- <CustomIcon
212
- className="iconDefaultImgModal"
213
- type={"white"}
214
- size={100}
215
- borderType={"rectangle"}
216
- icon={IconImage}
217
- />
218
- </Tooltip>
219
- }
220
- />
221
- </div>
222
- );
223
- /*
224
- <Tooltip
225
- componentTooltip={<label>{value.name}</label>}
226
- className="label-nameFileShort"
227
- position={"topCenter"}
228
- addArrow={false}
229
- transitionType={"zoom"}
230
- followCursor={false}
231
- >
232
- {value.name}
233
- </Tooltip>
234
- */
235
- };
236
-
237
- const renderFile = (item, ownMessage) => {
238
- const value = decodeJSON(item.value);
239
- const url = `${process.env.REACT_APP_IMAGES_ENDPOINT}/${value.key}`;
240
-
241
- return (
242
- <div className="item-file">
243
- <ButtonDownloadFile
244
- className="btnDownloadFileItem"
245
- size={22}
246
- type={ownMessage ? "black" : "white"}
247
- transparent
248
- url={url}
249
- onDownload={(error) => {
250
- error &&
251
- setModalAlert((prev) => ({
252
- show: true,
253
- title: error.message,
254
- message: error.details,
255
- }));
256
- }}
257
- />
258
- <Tooltip
259
- componentTooltip={<label>{value.name}</label>}
260
- className="label-nameFileShort"
261
- position={"topCenter"}
262
- addArrow={false}
263
- transitionType={"zoom"}
264
- followCursor={false}
265
- >
266
- {value.name}
267
- </Tooltip>
268
- </div>
269
- );
270
- };
271
-
272
- const getUserCreatedItem = (ownMessage, item, lastUserId) => {
273
- return (
274
- <Slide
275
- id={"itemScroll"}
276
- direction={ownMessage ? "left" : "right"}
277
- in={true}
278
- timeout={500}
279
- container={containerList.current}
280
- key={"item-" + item.id}
281
- >
282
- <li
283
- className={
284
- (ownMessage ? "own-message " : "") +
285
- (lastUserId === item.userId ? "sameUser" : "")
286
- }
287
- >
288
- {/* img del user */}
289
- {lastUserId !== item.userId && (
290
- <ImageTooltip
291
- className={"container-imgUser"}
292
- sizeLoading={25}
293
- colorLoading={undefined}
294
- src={getProfilePicture(item.userId, 34, 34)}
295
- componentDefault={
296
- <CustomIcon
297
- className="icon-imgUser"
298
- type={"whiteS2"}
299
- size={17}
300
- borderType={"circle"}
301
- icon={IconUser}
302
- />
303
- }
304
- classNameTooltip={"tooltip-imgUser"}
305
- componentTooltip={
306
- <label className="label-nameUser">
307
- {users[item.userId].name}
308
- </label>
309
- }
310
- />
311
- )}
312
-
313
- {item.type === "message"
314
- ? renderMessage(item)
315
- : item.type === "comment"
316
- ? renderComment(item)
317
- : item.type === "img"
318
- ? renderImg(item)
319
- : item.type === "file"
320
- ? renderFile(item, ownMessage)
321
- : item.type === "statusTicket"
322
- ? renderStatusTicket(item)
323
- : null}
324
-
325
- <label className="label-time">{getTime(item.date)}</label>
326
- </li>
327
- </Slide>
328
- );
329
- };
330
-
331
- const getItemNeutral = (item) => {
332
- return (
333
- <Zoom
334
- in={true}
335
- timeout={600}
336
- container={containerList.current}
337
- key={"item-" + item.id}
338
- >
339
- <li className={"itemNeutral"}>
340
- {item.type === "statusTicket"
341
- ? renderStatusTicketNeutral(item)
342
- : null}
343
- </li>
344
- </Zoom>
345
- );
346
- };
347
-
348
- const renderItems = () => {
349
- let jsxItems = [];
350
- let date = undefined;
351
- let countDate = 1;
352
- for (const item of items) {
353
- // manejo de las etiquetas fechas
354
- if (!date) {
355
- date = getFullDate(new Date(item.date));
356
- jsxItems.push(renderGrayLabel(date, `itemDate-${countDate++}`));
357
- } else {
358
- let newDate = getFullDate(new Date(item.date));
359
- if (newDate !== date) {
360
- jsxItems.push(renderGrayLabel(newDate, `itemDate-${countDate++}`));
361
- date = newDate;
362
- }
363
- }
364
-
365
- // elementos que van alineados al centro
366
- switch (item.type) {
367
- case "statusArticle":
368
- jsxItems.push(renderStatusArticle(item.value, `item-${item.id}`));
369
- break;
370
- case "statusService":
371
- jsxItems.push(renderStatusService(item.value, `item-${item.id}`));
372
- break;
373
- }
374
-
375
- // acomodo del item (left o right)
376
- let ownMessage = false;
377
- // CHAT MERCHANT ARTICLE
378
- if (chatType === "merchant_product") {
379
- if (currentUser.companyId === users[item.userId].companyId) {
380
- ownMessage = true;
381
- }
382
- }
383
- // CHAT ORDER ARTICLE
384
- else if (chatType === "order_product") {
385
- if (currentUser.companyId === users[item.userId].companyId) {
386
- if (activeCompanyId && activeCompanyId === currentUser.companyId) {
387
- if (item.userId === currentUser.id) {
388
- ownMessage = true;
389
- }
390
- } else {
391
- ownMessage = true;
392
- }
393
- }
394
- }
395
-
396
- // renderizar tipo de item
397
- jsxItems.push(getUserCreatedItem(ownMessage, item));
398
- }
399
- setCustomItems(jsxItems);
400
- };
401
-
402
- const renderItemsTicket = () => {
403
- let jsxItems = [];
404
- let date = undefined;
405
- let countDate = 1;
406
- let lastUserId = undefined;
407
-
408
-
409
- // recorrido de los items (del mas viejo al mas reciente)
410
- for (let index = items.length - 1; index >= 0; index--) {
411
- const item = items[index];
412
- // manejo de las etiquetas fechas
413
- if (!date) {
414
- date = getFullDate(new Date(item.date));
415
- jsxItems.push(renderGrayLabel(date, `itemDate-${countDate++}`));
416
- lastUserId = undefined;
417
- } else {
418
- let newDate = getFullDate(new Date(item.date));
419
- if (newDate !== date) {
420
- jsxItems.push(renderGrayLabel(newDate, `itemDate-${countDate++}`));
421
- date = newDate;
422
- lastUserId = undefined;
423
- }
424
- }
425
-
426
- // elementos que van alineados al centro
427
- /*
428
- switch (item.type) {
429
- case "statusTicket":
430
- jsxItems.push(getItemNeutral(item));
431
- lastUserId = undefined;
432
- continue;
433
- }
434
- */
435
-
436
- // acomodo del item (left o right)
437
- let ownMessage = false;
438
- // user tech
439
- if (currentUser.isUserTech) {
440
- if (isUserTech(users[item.userId].isUserTech)) ownMessage = true;
441
- }
442
- // user normal
443
- else {
444
- if (!isUserTech(users[item.userId].isUserTech)) {
445
- if (currentUser.companyId === users[item.userId].companyId) {
446
- ownMessage = true;
447
- }
448
- } else if (currentUser.id === item.userId) {
449
- ownMessage = true;
450
- }
451
- }
452
-
453
- // renderizar tipo de item
454
- jsxItems.push(getUserCreatedItem(ownMessage, item, lastUserId));
455
- lastUserId = item.userId;
456
- }
457
-
458
- setCustomItems(jsxItems);
459
- };
460
-
461
- return (
462
- <>
463
- <Container id={"containerItems"}>
464
- <div className="btn-loadMore">
465
- {showBtnLoadMore && (
466
- <ButtonV2
467
- className="container-btnLoadMore"
468
- type={"purple"}
469
- label={"cargar más"}
470
- size={10}
471
- borderType="oval"
472
- icon={IconReload}
473
- iconPosition="start"
474
- isLoading={btnLoadMoreLoading}
475
- onClick={async (event) => {
476
- setBtnLoadMoreLoading(true);
477
- if (onClickBtnLoadMore) {
478
- const responseError = await onClickBtnLoadMore();
479
- if (responseError) {
480
- setModalAlert({
481
- show: true,
482
- title: responseError.title,
483
- message: responseError.message,
484
- });
485
- }
486
- }
487
- setBtnLoadMoreLoading(false);
488
- }}
489
- />
490
- )}
491
- </div>
492
-
493
- <ul id="ulItems" ref={containerList}>
494
- {customItems}
495
- </ul>
496
- </Container>
497
-
498
- <Modal
499
- show={modalAlert.show}
500
- title={modalAlert.title}
501
- message={modalAlert.message}
502
- icon={"info"}
503
- onClickBtnDefault={(event) =>
504
- setModalAlert((prev) => ({
505
- ...prev,
506
- show: false,
507
- }))
508
- }
509
- />
510
- </>
511
- );
512
- };