contentoh-components-library 21.2.105 → 21.3.0

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