contentoh-components-library 21.2.89 → 21.2.90

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 (175) hide show
  1. package/.env.development +1 -6
  2. package/dist/components/atoms/ChatPopUp/ChatPopUp.stories.js +28 -0
  3. package/dist/components/atoms/ChatPopUp/index.js +841 -0
  4. package/dist/components/atoms/ChatPopUp/styles.js +27 -0
  5. package/dist/components/atoms/ChatPopUp/utils/handlersChat.js +182 -0
  6. package/dist/components/atoms/ProgressBar/styles.js +1 -1
  7. package/dist/components/atoms/Tooltip/Tooltip.stories.js +5 -35
  8. package/dist/components/atoms/Tooltip/index.js +24 -41
  9. package/dist/components/atoms/Tooltip/styles.js +1 -3
  10. package/dist/components/molecules/CustomSelect/CustomSelect.stories.js +22 -21
  11. package/dist/components/molecules/CustomSelect/SelectItem.js +1 -10
  12. package/dist/components/molecules/HeaderTop/index.js +5 -10
  13. package/dist/components/molecules/HeaderTop/styles.js +1 -1
  14. package/dist/components/pages/Dashboard/Dashboard.stories.js +44 -16
  15. package/dist/components/pages/Dashboard/index.js +17 -10
  16. package/dist/components/pages/ProviderProductEdition/index.js +2 -3
  17. package/dist/components/pages/RetailerProductEdition/index.js +7 -4
  18. package/dist/global-files/fonts.css +0 -18
  19. package/dist/global-files/variables.js +1 -3
  20. package/dist/index.js +45 -227
  21. package/package.json +1 -13
  22. package/src/components/atoms/ProgressBar/styles.js +4 -3
  23. package/src/components/molecules/CustomSelect/CustomSelect.stories.js +12 -20
  24. package/src/components/molecules/CustomSelect/SelectItem.js +0 -7
  25. package/src/components/molecules/HeaderTop/index.js +6 -11
  26. package/src/components/molecules/HeaderTop/styles.js +0 -4
  27. package/src/components/pages/Dashboard/Dashboard.stories.js +47 -16
  28. package/src/components/pages/Dashboard/index.js +13 -4
  29. package/src/components/pages/ProviderProductEdition/index.js +7 -6
  30. package/src/components/pages/RetailerProductEdition/index.js +4 -5
  31. package/src/global-files/fonts.css +0 -18
  32. package/src/global-files/variables.js +0 -2
  33. package/src/index.js +0 -14
  34. package/dist/assets/fonts/Roboto/Roboto-Medium.ttf +0 -0
  35. package/dist/assets/fonts/Roboto/Roboto-Regular.ttf +0 -0
  36. package/dist/assets/images/defaultImages/Spinner.gif +0 -0
  37. package/dist/assets/images/defaultImages/notFound.svg +0 -124
  38. package/dist/components/atoms/ButtonFileChooser/ButtonFileChooser.stories.js +0 -72
  39. package/dist/components/atoms/ButtonFileChooser/index.js +0 -118
  40. package/dist/components/atoms/ButtonFileChooser/styles.js +0 -20
  41. package/dist/components/atoms/ButtonV2/ButtonV2.stories.js +0 -66
  42. package/dist/components/atoms/ButtonV2/index.js +0 -111
  43. package/dist/components/atoms/ButtonV2/styles.js +0 -53
  44. package/dist/components/atoms/CustomIcon/CustomIcon.stories.js +0 -50
  45. package/dist/components/atoms/CustomIcon/index.js +0 -40
  46. package/dist/components/atoms/CustomIcon/styles.js +0 -33
  47. package/dist/components/atoms/IconFile/IconFile.stories.js +0 -48
  48. package/dist/components/atoms/IconFile/index.js +0 -249
  49. package/dist/components/atoms/IconFile/styles.js +0 -23
  50. package/dist/components/atoms/Image/Image.stories.js +0 -63
  51. package/dist/components/atoms/Image/index.js +0 -74
  52. package/dist/components/atoms/Image/styles.js +0 -40
  53. package/dist/components/atoms/ImageLink/ImageLink.stories.js +0 -63
  54. package/dist/components/atoms/ImageLink/index.js +0 -77
  55. package/dist/components/atoms/ImageLink/styles.js +0 -40
  56. package/dist/components/atoms/ImagePreview/ImagePreview.stories.js +0 -70
  57. package/dist/components/atoms/ImagePreview/index.js +0 -222
  58. package/dist/components/atoms/ImagePreview/styles.js +0 -44
  59. package/dist/components/atoms/InputText/InputText.stories.js +0 -60
  60. package/dist/components/atoms/InputText/index.js +0 -66
  61. package/dist/components/atoms/InputText/styles.js +0 -32
  62. package/dist/components/atoms/NotFound/NotFound.stories.js +0 -36
  63. package/dist/components/atoms/NotFound/index.js +0 -75
  64. package/dist/components/atoms/NotFound/styles.js +0 -20
  65. package/dist/components/molecules/ButtonDownloadFile/DownloadFile.stories.js +0 -66
  66. package/dist/components/molecules/ButtonDownloadFile/index.js +0 -179
  67. package/dist/components/molecules/ButtonDownloadFile/styles.js +0 -23
  68. package/dist/components/molecules/ImageTooltip/ImageTooltip.stories.js +0 -72
  69. package/dist/components/molecules/ImageTooltip/index.js +0 -84
  70. package/dist/components/molecules/ImageTooltip/styles.js +0 -33
  71. package/dist/components/organisms/Chat/Chat.stories.js +0 -215
  72. package/dist/components/organisms/Chat/ChatLists/ChatLists.stories.js +0 -83
  73. package/dist/components/organisms/Chat/ChatLists/index.js +0 -160
  74. package/dist/components/organisms/Chat/ChatLists/styles.js +0 -29
  75. package/dist/components/organisms/Chat/ContainerItems/ContainerItems.stories.js +0 -176
  76. package/dist/components/organisms/Chat/ContainerItems/index.js +0 -572
  77. package/dist/components/organisms/Chat/ContainerItems/styles.js +0 -20
  78. package/dist/components/organisms/Chat/ContentChat/ContentChat.stories.js +0 -142
  79. package/dist/components/organisms/Chat/ContentChat/index.js +0 -1422
  80. package/dist/components/organisms/Chat/ContentChat/styles.js +0 -20
  81. package/dist/components/organisms/Chat/Footer/Footer.stories.js +0 -43
  82. package/dist/components/organisms/Chat/Footer/index.js +0 -984
  83. package/dist/components/organisms/Chat/Footer/styles.js +0 -32
  84. package/dist/components/organisms/Chat/Header/Header.stories.js +0 -96
  85. package/dist/components/organisms/Chat/Header/index.js +0 -84
  86. package/dist/components/organisms/Chat/Header/styles.js +0 -20
  87. package/dist/components/organisms/Chat/index.js +0 -327
  88. package/dist/components/organisms/Chat/styles.js +0 -29
  89. package/dist/components/organisms/Modal/Modal.stories.js +0 -66
  90. package/dist/components/organisms/Modal/index.js +0 -95
  91. package/dist/components/organisms/Modal/styles.js +0 -20
  92. package/dist/global-files/handle_http.js +0 -383
  93. package/dist/global-files/utils.js +0 -472
  94. package/src/assets/fonts/Roboto/Roboto-Medium.ttf +0 -0
  95. package/src/assets/fonts/Roboto/Roboto-Regular.ttf +0 -0
  96. package/src/assets/images/chatPopup/Spinner.gif +0 -0
  97. package/src/assets/images/chatPopup/close.svg +0 -3
  98. package/src/assets/images/chatPopup/defaultImage.png +0 -0
  99. package/src/assets/images/chatPopup/defaultProfile.png +0 -0
  100. package/src/assets/images/chatPopup/doc.svg +0 -1
  101. package/src/assets/images/chatPopup/document.svg +0 -1
  102. package/src/assets/images/chatPopup/iconChat.svg +0 -19
  103. package/src/assets/images/chatPopup/iconPlus.svg +0 -3
  104. package/src/assets/images/chatPopup/pdf.svg +0 -75
  105. package/src/assets/images/chatPopup/remove.svg +0 -4
  106. package/src/assets/images/chatPopup/send.svg +0 -3
  107. package/src/assets/images/chatPopup/svgIcon.svg +0 -109
  108. package/src/assets/images/chatPopup/upload_file.svg +0 -3
  109. package/src/assets/images/chatPopup/xls.svg +0 -53
  110. package/src/assets/images/customSelect/starIcon.svg +0 -14
  111. package/src/assets/images/defaultImages/Spinner.gif +0 -0
  112. package/src/assets/images/defaultImages/notFound.svg +0 -124
  113. package/src/components/atoms/ButtonFileChooser/ButtonFileChooser.stories.js +0 -47
  114. package/src/components/atoms/ButtonFileChooser/index.js +0 -69
  115. package/src/components/atoms/ButtonFileChooser/styles.js +0 -4
  116. package/src/components/atoms/ButtonV2/ButtonV2.stories.js +0 -50
  117. package/src/components/atoms/ButtonV2/index.js +0 -74
  118. package/src/components/atoms/ButtonV2/styles.js +0 -187
  119. package/src/components/atoms/CustomIcon/CustomIcon.stories.js +0 -36
  120. package/src/components/atoms/CustomIcon/index.js +0 -41
  121. package/src/components/atoms/CustomIcon/styles.js +0 -85
  122. package/src/components/atoms/IconFile/IconFile.stories.js +0 -35
  123. package/src/components/atoms/IconFile/index.js +0 -119
  124. package/src/components/atoms/IconFile/styles.js +0 -67
  125. package/src/components/atoms/Image/Image.stories.js +0 -43
  126. package/src/components/atoms/Image/index.js +0 -54
  127. package/src/components/atoms/Image/styles.js +0 -25
  128. package/src/components/atoms/ImageLink/ImageLink.stories.js +0 -43
  129. package/src/components/atoms/ImageLink/index.js +0 -57
  130. package/src/components/atoms/ImageLink/styles.js +0 -30
  131. package/src/components/atoms/ImagePreview/ImagePreview.stories.js +0 -52
  132. package/src/components/atoms/ImagePreview/index.js +0 -191
  133. package/src/components/atoms/ImagePreview/styles.js +0 -77
  134. package/src/components/atoms/InputText/InputText.stories.js +0 -39
  135. package/src/components/atoms/InputText/index.js +0 -61
  136. package/src/components/atoms/InputText/styles.js +0 -89
  137. package/src/components/atoms/NotFound/NotFound.stories.js +0 -19
  138. package/src/components/atoms/NotFound/index.js +0 -52
  139. package/src/components/atoms/NotFound/styles.js +0 -55
  140. package/src/components/atoms/Tooltip/Tooltip.stories.js +0 -51
  141. package/src/components/atoms/Tooltip/index.js +0 -59
  142. package/src/components/atoms/Tooltip/styles.js +0 -42
  143. package/src/components/molecules/ButtonDownloadFile/DownloadFile.stories.js +0 -54
  144. package/src/components/molecules/ButtonDownloadFile/index.js +0 -111
  145. package/src/components/molecules/ButtonDownloadFile/styles.js +0 -66
  146. package/src/components/molecules/ImageTooltip/ImageTooltip.stories.js +0 -46
  147. package/src/components/molecules/ImageTooltip/index.js +0 -62
  148. package/src/components/molecules/ImageTooltip/styles.js +0 -18
  149. package/src/components/organisms/Chat/Chat.stories.js +0 -199
  150. package/src/components/organisms/Chat/ChatLists/ChatLists.stories.js +0 -65
  151. package/src/components/organisms/Chat/ChatLists/Rotoplas.jpeg +0 -0
  152. package/src/components/organisms/Chat/ChatLists/THD.png +0 -0
  153. package/src/components/organisms/Chat/ChatLists/index.js +0 -141
  154. package/src/components/organisms/Chat/ChatLists/styles.js +0 -162
  155. package/src/components/organisms/Chat/ContainerItems/ContainerItems.stories.js +0 -142
  156. package/src/components/organisms/Chat/ContainerItems/index.js +0 -551
  157. package/src/components/organisms/Chat/ContainerItems/styles.js +0 -336
  158. package/src/components/organisms/Chat/ContentChat/ContentChat.stories.js +0 -102
  159. package/src/components/organisms/Chat/ContentChat/Rotoplas.jpeg +0 -0
  160. package/src/components/organisms/Chat/ContentChat/THD.png +0 -0
  161. package/src/components/organisms/Chat/ContentChat/index.js +0 -900
  162. package/src/components/organisms/Chat/ContentChat/styles.js +0 -41
  163. package/src/components/organisms/Chat/Footer/Footer.stories.js +0 -22
  164. package/src/components/organisms/Chat/Footer/index.js +0 -669
  165. package/src/components/organisms/Chat/Footer/styles.js +0 -286
  166. package/src/components/organisms/Chat/Header/Header.stories.js +0 -66
  167. package/src/components/organisms/Chat/Header/index.js +0 -94
  168. package/src/components/organisms/Chat/Header/styles.js +0 -49
  169. package/src/components/organisms/Chat/index.js +0 -294
  170. package/src/components/organisms/Chat/styles.js +0 -42
  171. package/src/components/organisms/Modal/Modal.stories.js +0 -55
  172. package/src/components/organisms/Modal/index.js +0 -97
  173. package/src/components/organisms/Modal/styles.js +0 -103
  174. package/src/global-files/handle_http.js +0 -231
  175. package/src/global-files/utils.js +0 -300
@@ -1,142 +0,0 @@
1
- import { ContainerItems } from "./index";
2
-
3
- export default {
4
- title: "Components/organisms/Chat/ContainerItems",
5
- component: ContainerItems,
6
- };
7
-
8
- const Template = (args) => <ContainerItems {...args} />;
9
-
10
- // items de prueba
11
- const items = {
12
- 1: {
13
- date: "2022-10-13 10:10:00",
14
- type: "message",
15
- value: "mensaje 1 user10",
16
- userId: 10,
17
- },
18
- 2: {
19
- date: "2022-10-12 13:19:00",
20
- type: "message",
21
- value: "mensaje 1 user20",
22
- userId: 20,
23
- },
24
- 3: {
25
- date: "2022-10-12 12:33:00",
26
- type: "comment",
27
- value: "comentario 1 user20",
28
- userId: 20,
29
- },
30
- 4: {
31
- date: "2022-10-12 11:56:00",
32
- type: "comment",
33
- value: "comentario 1 user30",
34
- userId: 30,
35
- },
36
- 5: {
37
- date: "2022-10-12 8:41:00",
38
- type: "statusService",
39
- value: "La sección imágenes ha sido validada",
40
- userId: 20,
41
- },
42
- 6: {
43
- date: "2022-10-11 14:58:00",
44
- type: "img",
45
- value: "84300/1/chat/playa-213f791b-d890-48e1-be19-28bf5a95d517.jpeg",
46
- userId: 10,
47
- },
48
- 7: {
49
- date: "2022-10-10 16:12:00",
50
- type: "img",
51
- value: `84300/1/chat/21dba1da-3c60-42c4-97bd-033664808256-fb19ff57-b91c-4ef2-ba2a-d857b55fb33b.svg`,
52
- userId: 30,
53
- },
54
- 8: {
55
- date: "2022-10-10 15:55:00",
56
- type: "statusArticle",
57
- value: "El estatus cambio a Aprobado Coordinador",
58
- userId: 20,
59
- },
60
- 9: {
61
- date: "2022-10-10 9:15:00",
62
- type: "comment",
63
- value: "comentario 1 user10",
64
- userId: 10,
65
- },
66
- 10: {
67
- date: "2022-10-9 6:24:00",
68
- type: "file",
69
- value:
70
- "84300/1/chat/acuse RFC-8b2eb177-5bfc-4266-9b26-4e7297880594-9e2e5853-4697-442a-8ff7-3b7a1ede0856.pdf",
71
- userId: 10,
72
- },
73
- 11: {
74
- date: "2022-10-9 4:29:00",
75
- type: "file",
76
- value: "84300/1/chat/noExiste.docx",
77
- userId: 30,
78
- },
79
- 12: {
80
- date: "2022-10-9 2:39:00",
81
- type: "file",
82
- value: "84300/1/chat/noExiste2.xlsx",
83
- userId: 20,
84
- },
85
- 13: {
86
- date: "2022-10-8 23:46:00",
87
- type: "file",
88
- value: "84300/1/chat/noExiste3.csv",
89
- userId: 20,
90
- },
91
- 14: {
92
- date: "2022-10-8 23:22:00",
93
- type: "file",
94
- value: "84300/1/chat/noExiste4.pptx",
95
- userId: 30,
96
- },
97
- 15: {
98
- date: "2022-10-8 21:01:00",
99
- type: "file",
100
- value: "84300/1/chat/noExiste5.zip",
101
- userId: 10,
102
- },
103
- 16: {
104
- date: "2022-10-8 20:11:00",
105
- type: "file",
106
- value: "84300/1/chat/noExiste6.txt",
107
- userId: 10,
108
- },
109
- };
110
-
111
- // users de prueba
112
- const users = {
113
- 10: { name: "Pedro Castillo", companyId: 100 },
114
- 20: { name: "Ana Carranza", companyId: 200 },
115
- 30: { name: "Javier Aguayo", companyId: 100 },
116
- };
117
-
118
- // companies de prueba multiple
119
- const companies = {
120
- 100: { name: "Fábrica", statusChat: "enabled" },
121
- 200: { name: "Proveedor", statusChat: "current" },
122
- };
123
-
124
- export const exampleChat = Template.bind({});
125
- exampleChat.args = {
126
- chatData: {
127
- items,
128
- users,
129
- companies,
130
- },
131
- currentUser: { id: 10, companyId: 100 },
132
- };
133
-
134
- export const emptyChat = Template.bind({});
135
- emptyChat.args = {
136
- chatData: {
137
- items: [],
138
- users: [],
139
- companies: [],
140
- },
141
- currentUser: { id: 10, companyId: 100 },
142
- };
@@ -1,551 +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
-
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
- <div className="container">
340
- <label className="label-nameUser">
341
- {users[item.userId].name}
342
- </label>
343
- </div>
344
- }
345
- />
346
- )}
347
-
348
- {item.type === "message"
349
- ? renderMessage(item)
350
- : item.type === "comment"
351
- ? renderComment(item)
352
- : item.type === "img"
353
- ? renderImg(item)
354
- : item.type === "file"
355
- ? renderFile(item, ownMessage)
356
- : item.type === "statusTicket"
357
- ? renderStatusTicket(item)
358
- : null}
359
-
360
- <label className="label-time">{getTime(item.date)}</label>
361
- </li>
362
- </Slide>
363
- );
364
- };
365
-
366
- const getItemNeutral = (item) => {
367
- return (
368
- <Zoom
369
- in={true}
370
- timeout={600}
371
- container={containerList.current}
372
- key={"item-" + item.id}
373
- >
374
- <li className={"itemNeutral"}>
375
- {item.type === "statusTicket"
376
- ? renderStatusTicketNeutral(item)
377
- : null}
378
- </li>
379
- </Zoom>
380
- );
381
- };
382
-
383
- const renderItems = () => {
384
- let jsxItems = [];
385
- let date = undefined;
386
- let countDate = 1;
387
- for (const item of items) {
388
- // manejo de las etiquetas fechas
389
- if (!date) {
390
- date = getFullDate(new Date(item.date));
391
- } else {
392
- let newDate = getFullDate(new Date(item.date));
393
- if (newDate !== date) {
394
- jsxItems.push(renderGrayLabel(date, `itemDate-${countDate++}`));
395
- date = newDate;
396
- }
397
- }
398
-
399
- // elementos que van alineados al centro
400
- switch (item.type) {
401
- case "statusArticle":
402
- jsxItems.push(renderStatusArticle(item.value, `item-${item.id}`));
403
- continue;
404
- case "statusService":
405
- jsxItems.push(renderStatusService(item.value, `item-${item.id}`));
406
- continue;
407
- }
408
-
409
- // acomodo del item (left o right)
410
- let ownMessage = false;
411
- // CHAT MERCHANT ARTICLE
412
- if (chatType === "merchant_product") {
413
- if (currentUser.companyId == users[item.userId].companyId) {
414
- ownMessage = true;
415
- }
416
- }
417
- // CHAT ORDER ARTICLE
418
- else if (chatType === "order_product") {
419
- if (currentUser.companyId == users[item.userId].companyId) {
420
- if (activeCompanyId && activeCompanyId == currentUser.companyId) {
421
- if (item.userId == currentUser.id) {
422
- ownMessage = true;
423
- }
424
- } else {
425
- ownMessage = true;
426
- }
427
- }
428
- }
429
-
430
- // renderizar tipo de item
431
- jsxItems.push(getUserCreatedItem(ownMessage, item));
432
- }
433
- if (date)
434
- jsxItems.push(
435
- renderGrayLabel(date, `itemDate-${countDate}`, "label-date")
436
- );
437
- setCustomItems(jsxItems);
438
- };
439
-
440
- const renderItemsTicket = () => {
441
- let jsxItems = [];
442
- let date = undefined;
443
- let countDate = 1;
444
- let lastUserId = undefined;
445
- //console.log("isUserTech:", currentUser.isUserTech);
446
-
447
- // recorrido de los items (del mas viejo al mas reciente)
448
- for (let index = items.length - 1; index >= 0; index--) {
449
- const item = items[index];
450
- // manejo de las etiquetas fechas
451
- if (!date) {
452
- date = getFullDate(new Date(item.date));
453
- jsxItems.push(renderGrayLabel(date, `itemDate-${countDate++}`));
454
- lastUserId = undefined;
455
- } else {
456
- let newDate = getFullDate(new Date(item.date));
457
- if (newDate !== date) {
458
- jsxItems.push(renderGrayLabel(newDate, `itemDate-${countDate++}`));
459
- date = newDate;
460
- lastUserId = undefined;
461
- }
462
- }
463
-
464
- // elementos que van alineados al centro
465
- /*
466
- switch (item.type) {
467
- case "statusTicket":
468
- jsxItems.push(getItemNeutral(item));
469
- lastUserId = undefined;
470
- continue;
471
- }
472
- */
473
-
474
- // acomodo del item (left o right)
475
- let ownMessage = false;
476
- // user tech
477
- if (currentUser.isUserTech) {
478
- if (users[item.userId].isUserTech) ownMessage = true;
479
- }
480
- // user normal
481
- else {
482
- if (!users[item.userId].isUserTech) {
483
- if (currentUser.companyId == users[item.userId].companyId) {
484
- ownMessage = true;
485
- }
486
- } else if (currentUser.id == item.userId) {
487
- ownMessage = true;
488
- }
489
- }
490
-
491
- // renderizar tipo de item
492
- //console.log(lastUserId + "<>" + item.userId);
493
- jsxItems.push(getUserCreatedItem(ownMessage, item, lastUserId));
494
- lastUserId = item.userId;
495
- }
496
-
497
- setCustomItems(jsxItems);
498
- };
499
-
500
- return (
501
- <>
502
- <Container id={"containerItems"}>
503
- <div className="btn-loadMore">
504
- {showBtnLoadMore && (
505
- <ButtonV2
506
- className="container-btnLoadMore"
507
- type={"purple"}
508
- label={"cargar más"}
509
- size={10}
510
- borderType="oval"
511
- icon={IconReload}
512
- iconPosition="start"
513
- isLoading={btnLoadMoreLoading}
514
- onClick={async (event) => {
515
- setBtnLoadMoreLoading(true);
516
- if (onClickBtnLoadMore) {
517
- const responseError = await onClickBtnLoadMore();
518
- if (responseError) {
519
- setModalAlert({
520
- show: true,
521
- title: responseError.title,
522
- message: responseError.message,
523
- });
524
- }
525
- }
526
- setBtnLoadMoreLoading(false);
527
- }}
528
- />
529
- )}
530
- </div>
531
-
532
- <ul id="ulItems" ref={containerList}>
533
- {customItems}
534
- </ul>
535
- </Container>
536
-
537
- <Modal
538
- show={modalAlert.show}
539
- title={modalAlert.title}
540
- message={modalAlert.message}
541
- icon={"info"}
542
- onClickBtnDefault={(event) =>
543
- setModalAlert((prev) => ({
544
- ...prev,
545
- show: false,
546
- }))
547
- }
548
- />
549
- </>
550
- );
551
- };