contentoh-components-library 21.3.33 → 21.3.34
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.
- package/dist/components/atoms/CustomSelectItem/index.js +1 -1
- package/dist/components/atoms/InputText/index.js +1 -1
- package/dist/components/atoms/ProductPercentCard/index.js +1 -1
- package/dist/components/atoms/Select/index.js +1 -1
- package/dist/components/molecules/ButtonDownloadFile/index.js +1 -1
- package/dist/components/molecules/CarouselImagesLogin/index.js +2 -2
- package/dist/components/molecules/ImageTooltip/index.js +7 -21
- package/dist/components/molecules/ProductNameHeader/index.js +0 -1
- package/dist/components/molecules/SelectV2/index.js +1 -1
- package/dist/components/organisms/Chat/Chat.stories.js +6 -5
- package/dist/components/organisms/Chat/ChatLists/index.js +2 -2
- package/dist/components/organisms/Chat/ContentChat/index.js +85 -49
- package/dist/components/organisms/Chat/Footer/index.js +21 -22
- package/dist/components/organisms/Chat/index.js +1 -1
- package/dist/components/organisms/FullProductNameHeader/index.js +7 -1
- package/dist/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +9 -6
- package/dist/global-files/handle_http.js +33 -31
- package/package.json +1 -1
- package/src/components/atoms/CustomSelectItem/index.js +2 -1
- package/src/components/atoms/InputText/index.js +1 -1
- package/src/components/atoms/ProductPercentCard/index.js +2 -2
- package/src/components/atoms/Select/index.js +1 -1
- package/src/components/molecules/ButtonDownloadFile/index.js +1 -1
- package/src/components/molecules/CarouselImagesLogin/index.js +2 -2
- package/src/components/molecules/ImageTooltip/index.js +7 -17
- package/src/components/molecules/ProductNameHeader/index.js +0 -1
- package/src/components/molecules/SelectV2/index.js +1 -1
- package/src/components/organisms/Chat/Chat.stories.js +5 -4
- package/src/components/organisms/Chat/ChatLists/index.js +2 -2
- package/src/components/organisms/Chat/ContentChat/index.js +35 -28
- package/src/components/organisms/Chat/Footer/index.js +4 -8
- package/src/components/organisms/Chat/index.js +1 -1
- package/src/components/organisms/FullProductNameHeader/index.js +8 -3
- package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +11 -5
- package/src/global-files/handle_http.js +11 -13
|
@@ -55,6 +55,12 @@ var FullProductNameHeader = function FullProductNameHeader(_ref) {
|
|
|
55
55
|
});
|
|
56
56
|
setRetailers(rtls);
|
|
57
57
|
}, [servicesData]);
|
|
58
|
+
|
|
59
|
+
var getTime = function getTime(date) {
|
|
60
|
+
if (!date) return "";
|
|
61
|
+
return new Date(date).toLocaleDateString();
|
|
62
|
+
};
|
|
63
|
+
|
|
58
64
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styles.Container, {
|
|
59
65
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ProductNameHeader.ProductNameHeader, {
|
|
60
66
|
productName: (headerData === null || headerData === void 0 ? void 0 : (_headerData$article = headerData.article) === null || _headerData$article === void 0 ? void 0 : _headerData$article.name) || (headerData === null || headerData === void 0 ? void 0 : headerData.name),
|
|
@@ -62,7 +68,7 @@ var FullProductNameHeader = function FullProductNameHeader(_ref) {
|
|
|
62
68
|
percentRequired: percent,
|
|
63
69
|
percent: percent === null || percent === void 0 ? void 0 : percent.toFixed(0),
|
|
64
70
|
priority: headerData === null || headerData === void 0 ? void 0 : headerData.prio,
|
|
65
|
-
date:
|
|
71
|
+
date: getTime((headerData === null || headerData === void 0 ? void 0 : (_headerData$article2 = headerData.article) === null || _headerData$article2 === void 0 ? void 0 : _headerData$article2.timestamp) || (headerData === null || headerData === void 0 ? void 0 : headerData.timestamp))
|
|
66
72
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
67
73
|
className: "features-bar-container",
|
|
68
74
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_FeaturesBar.FeaturesBar, {
|
|
@@ -28,10 +28,10 @@ exports.ProviderProductEditionDefault = ProviderProductEditionDefault;
|
|
|
28
28
|
ProviderProductEditionDefault.args = {
|
|
29
29
|
tabsSections: {
|
|
30
30
|
Descripción: true,
|
|
31
|
-
"Ficha técnica":
|
|
32
|
-
Imágenes:
|
|
31
|
+
"Ficha técnica": false,
|
|
32
|
+
Imágenes: false
|
|
33
33
|
},
|
|
34
|
-
token: "eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.
|
|
34
|
+
token: "eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiI1ODg0YWUzNC01OWQ2LTQ0NTQtYjk4ZS04MjE1MThiY2MzYTciLCJjb2duaXRvOmdyb3VwcyI6WyJ1c3VhcmlvX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfWE1aUWRxa0dqIiwicGhvbmVfbnVtYmVyX3ZlcmlmaWVkIjpmYWxzZSwiY29nbml0bzp1c2VybmFtZSI6IjU4ODRhZTM0LTU5ZDYtNDQ1NC1iOThlLTgyMTUxOGJjYzNhNyIsImNvZ25pdG86cm9sZXMiOlsiYXJuOmF3czppYW06Ojg5ODY3MDIzMjgwNzpyb2xlXC9jb250ZW50b2gtZGV2LXVzLWVhc3QtMS1sYW1iZGFSb2xlIl0sImF1ZCI6IjVhYzh0cGdzNmdic3ExM2ZydnJwaWVlcDQwIiwiZXZlbnRfaWQiOiJlZjViNDQzYi02ODc0LTQ2NGQtOWZiZS00Y2UwNWU4ZDQ3YTEiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY4MDAzODYyNiwibmFtZSI6IkNhZGVuYSBJc21hZWwiLCJwaG9uZV9udW1iZXIiOiIrNTIzMTExMzY2MzM2IiwiZXhwIjoxNjgwMDQyMjI1LCJpYXQiOjE2ODAwMzg2MjYsImVtYWlsIjoiY2FkZW5hLmlzbWFlbEBhbGxmcmVlbWFpbC5uZXQifQ.rhufpJdUaJOpiKtXJgNoDq863ecFnLp63c9_6NeEbpYYNN19d_xac8aZADN-QMpkmz1oxtqfxf_-JN5jMJexi9gJCRb9O7-xL75v_G9UjdmE8sRA6qRNb_tFUCt1oee_ulgqm_2wTjb7qGMGvY1eb1J1IX2pBYKnBy64KM6J5xFfZ57ac_bGruYhCzUexPBWyZKc5ckoY2zJqK5m5Ok7ds0m1hC0t-eQSGX_8KMsGQKiHevQ07cZUQ9mxOGVweRuAqITNx8fVmpD9QTpoZJJ5STVVcKO2CS0ltyE_DNlyejO7mZqbKvGEeLYc4ga0nozK9aP8H2cN_topT0d4JZ5rA",
|
|
35
35
|
articleId: 238,
|
|
36
36
|
category: 846,
|
|
37
37
|
version: 2,
|
|
@@ -68,10 +68,13 @@ ProviderProductEditionDefault.args = {
|
|
|
68
68
|
}]
|
|
69
69
|
},
|
|
70
70
|
location: {
|
|
71
|
+
pathname: "/EditProducts",
|
|
72
|
+
search: "",
|
|
73
|
+
hash: "",
|
|
71
74
|
state: {
|
|
72
|
-
origin: "Contentoh",
|
|
73
75
|
withChat: true
|
|
74
|
-
}
|
|
76
|
+
},
|
|
77
|
+
key: "24vwut"
|
|
75
78
|
},
|
|
76
79
|
user: {
|
|
77
80
|
id_user: 59,
|
|
@@ -105,7 +108,7 @@ ProviderProductEditionDefault.args = {
|
|
|
105
108
|
products_limit: "500",
|
|
106
109
|
type: "PyMES"
|
|
107
110
|
},
|
|
108
|
-
src: "https://content-management-profile.s3.amazonaws.com/id-59/59.png?
|
|
111
|
+
src: "https://content-management-profile.s3.amazonaws.com/id-59/59.png?1680038627077"
|
|
109
112
|
},
|
|
110
113
|
company: {
|
|
111
114
|
id_company: 817,
|
|
@@ -11,10 +11,20 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
11
11
|
|
|
12
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
13
13
|
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
15
|
+
|
|
14
16
|
var _axios = _interopRequireDefault(require("axios"));
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
var objToQueryString = function objToQueryString(obj) {
|
|
19
|
+
if (!Object.values(obj).length) return null;
|
|
20
|
+
return Object.entries(obj).map(function (_ref) {
|
|
21
|
+
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
22
|
+
key = _ref2[0],
|
|
23
|
+
value = _ref2[1];
|
|
17
24
|
|
|
25
|
+
return "".concat(key, "=").concat(encodeURIComponent(JSON.stringify(value)));
|
|
26
|
+
}).join("&");
|
|
27
|
+
};
|
|
18
28
|
/**
|
|
19
29
|
* funcion que realiza un axios GET
|
|
20
30
|
*
|
|
@@ -24,16 +34,15 @@ var _axios = _interopRequireDefault(require("axios"));
|
|
|
24
34
|
* body: {} | undefined ,
|
|
25
35
|
* message: string,
|
|
26
36
|
* errorDetail: string
|
|
27
|
-
* }> }
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
//============================================================
|
|
37
|
+
* }> } */
|
|
38
|
+
|
|
39
|
+
|
|
31
40
|
var fetchGET = function fetchGET() {
|
|
32
41
|
var endpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
|
33
42
|
var paramsQuery = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
34
43
|
var paramsHeaders = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
35
44
|
return new Promise( /*#__PURE__*/function () {
|
|
36
|
-
var
|
|
45
|
+
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(response) {
|
|
37
46
|
var URL, keysParamsQuery, respHTTPjson, body, _body$message, _body$errorDetail;
|
|
38
47
|
|
|
39
48
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
@@ -41,26 +50,19 @@ var fetchGET = function fetchGET() {
|
|
|
41
50
|
switch (_context.prev = _context.next) {
|
|
42
51
|
case 0:
|
|
43
52
|
_context.prev = 0;
|
|
44
|
-
URL = endpoint;
|
|
53
|
+
URL = "".concat(endpoint, "?").concat(objToQueryString(paramsQuery));
|
|
45
54
|
keysParamsQuery = Object.keys(paramsQuery); // agregar cada param query a la URL
|
|
46
55
|
|
|
47
|
-
|
|
48
|
-
if (index == 0) {
|
|
49
|
-
URL += "?".concat(key, "=").concat(paramsQuery[key]);
|
|
50
|
-
} else {
|
|
51
|
-
URL += "&".concat(key, "=").concat(paramsQuery[key]);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
_context.next = 6;
|
|
56
|
+
_context.next = 5;
|
|
55
57
|
return _axios.default.get(URL, {
|
|
56
58
|
headers: paramsHeaders
|
|
57
59
|
});
|
|
58
60
|
|
|
59
|
-
case
|
|
61
|
+
case 5:
|
|
60
62
|
respHTTPjson = _context.sent;
|
|
61
63
|
|
|
62
64
|
if (!(respHTTPjson.status !== 200)) {
|
|
63
|
-
_context.next =
|
|
65
|
+
_context.next = 8;
|
|
64
66
|
break;
|
|
65
67
|
}
|
|
66
68
|
|
|
@@ -69,12 +71,12 @@ var fetchGET = function fetchGET() {
|
|
|
69
71
|
errorDetail: respHTTPjson.statusText
|
|
70
72
|
}));
|
|
71
73
|
|
|
72
|
-
case
|
|
74
|
+
case 8:
|
|
73
75
|
// obtener body backend
|
|
74
76
|
body = JSON.parse(respHTTPjson.data.body); // verificar si existe error desde el backend
|
|
75
77
|
|
|
76
78
|
if (!(respHTTPjson.data.statusCode !== 200)) {
|
|
77
|
-
_context.next =
|
|
79
|
+
_context.next = 11;
|
|
78
80
|
break;
|
|
79
81
|
}
|
|
80
82
|
|
|
@@ -83,29 +85,29 @@ var fetchGET = function fetchGET() {
|
|
|
83
85
|
errorDetail: (_body$errorDetail = body.errorDetail) !== null && _body$errorDetail !== void 0 ? _body$errorDetail : ""
|
|
84
86
|
}));
|
|
85
87
|
|
|
86
|
-
case
|
|
88
|
+
case 11:
|
|
87
89
|
return _context.abrupt("return", response({
|
|
88
90
|
body: body
|
|
89
91
|
}));
|
|
90
92
|
|
|
91
|
-
case
|
|
92
|
-
_context.prev =
|
|
93
|
+
case 14:
|
|
94
|
+
_context.prev = 14;
|
|
93
95
|
_context.t0 = _context["catch"](0);
|
|
94
96
|
return _context.abrupt("return", response({
|
|
95
97
|
message: "Error al obtener los datos",
|
|
96
98
|
errorDetail: _context.t0.message
|
|
97
99
|
}));
|
|
98
100
|
|
|
99
|
-
case
|
|
101
|
+
case 17:
|
|
100
102
|
case "end":
|
|
101
103
|
return _context.stop();
|
|
102
104
|
}
|
|
103
105
|
}
|
|
104
|
-
}, _callee, null, [[0,
|
|
106
|
+
}, _callee, null, [[0, 14]]);
|
|
105
107
|
}));
|
|
106
108
|
|
|
107
109
|
return function (_x) {
|
|
108
|
-
return
|
|
110
|
+
return _ref3.apply(this, arguments);
|
|
109
111
|
};
|
|
110
112
|
}());
|
|
111
113
|
}; //============================================================
|
|
@@ -132,7 +134,7 @@ var fetchPOST = function fetchPOST() {
|
|
|
132
134
|
var paramsBody = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
133
135
|
var paramsHeaders = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
134
136
|
return new Promise( /*#__PURE__*/function () {
|
|
135
|
-
var
|
|
137
|
+
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(response) {
|
|
136
138
|
var respHTTPjson, body, _body$message2, _body$errorDetail2;
|
|
137
139
|
|
|
138
140
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
@@ -194,7 +196,7 @@ var fetchPOST = function fetchPOST() {
|
|
|
194
196
|
}));
|
|
195
197
|
|
|
196
198
|
return function (_x2) {
|
|
197
|
-
return
|
|
199
|
+
return _ref4.apply(this, arguments);
|
|
198
200
|
};
|
|
199
201
|
}());
|
|
200
202
|
}; //============================================================
|
|
@@ -221,7 +223,7 @@ var fetchPUT = function fetchPUT() {
|
|
|
221
223
|
var paramsBody = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
222
224
|
var paramsHeaders = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
223
225
|
return new Promise( /*#__PURE__*/function () {
|
|
224
|
-
var
|
|
226
|
+
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(response) {
|
|
225
227
|
var respHTTPjson, body, _body$message3, _body$errorDetail3;
|
|
226
228
|
|
|
227
229
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
@@ -283,7 +285,7 @@ var fetchPUT = function fetchPUT() {
|
|
|
283
285
|
}));
|
|
284
286
|
|
|
285
287
|
return function (_x3) {
|
|
286
|
-
return
|
|
288
|
+
return _ref5.apply(this, arguments);
|
|
287
289
|
};
|
|
288
290
|
}());
|
|
289
291
|
}; //============================================================
|
|
@@ -310,7 +312,7 @@ var fetchDELETE = function fetchDELETE() {
|
|
|
310
312
|
var paramsBody = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
311
313
|
var paramsHeaders = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
312
314
|
return new Promise( /*#__PURE__*/function () {
|
|
313
|
-
var
|
|
315
|
+
var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(response) {
|
|
314
316
|
var respHTTPjson, body, _body$message4, _body$errorDetail4;
|
|
315
317
|
|
|
316
318
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
@@ -373,7 +375,7 @@ var fetchDELETE = function fetchDELETE() {
|
|
|
373
375
|
}));
|
|
374
376
|
|
|
375
377
|
return function (_x4) {
|
|
376
|
-
return
|
|
378
|
+
return _ref6.apply(this, arguments);
|
|
377
379
|
};
|
|
378
380
|
}());
|
|
379
381
|
};
|
package/package.json
CHANGED
|
@@ -25,7 +25,8 @@ export const CustomSelectItem = ({
|
|
|
25
25
|
const oneDimensionArray = (arr) => {
|
|
26
26
|
var array = [];
|
|
27
27
|
arr.forEach((element) => {
|
|
28
|
-
if (typeof element
|
|
28
|
+
if (typeof element === "object")
|
|
29
|
+
array.push(...oneDimensionArray(element));
|
|
29
30
|
else array.push(element);
|
|
30
31
|
});
|
|
31
32
|
return array;
|
|
@@ -49,7 +49,7 @@ export const InputText = (props) => {
|
|
|
49
49
|
value={text}
|
|
50
50
|
onChange={(event) => onChangeText && onChangeText(event.target.value)}
|
|
51
51
|
onKeyDown={(event) => {
|
|
52
|
-
if (event.key
|
|
52
|
+
if (event.key === "Enter" && !event.shiftKey) {
|
|
53
53
|
event.preventDefault();
|
|
54
54
|
onEnter && onEnter(event);
|
|
55
55
|
}
|
|
@@ -9,14 +9,14 @@ export const ProductPercentCard = ({
|
|
|
9
9
|
var result = (productsInStatus / totalProcucts) * 100;
|
|
10
10
|
|
|
11
11
|
var percent = result.toString().search(/\./) ? result.toFixed(2) : result;
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
return (
|
|
14
14
|
<Container className={`status-${statusType}`}>
|
|
15
15
|
<p className="text">Productos en proceso</p>
|
|
16
16
|
<div className="percent-text">
|
|
17
17
|
<p className="number">{productsInStatus}</p>
|
|
18
18
|
<img src={polygon} alt="" />
|
|
19
|
-
<span className="span">{percent
|
|
19
|
+
<span className="span">{percent === "NaN" ? 0 : percent}%</span>
|
|
20
20
|
</div>
|
|
21
21
|
</Container>
|
|
22
22
|
);
|
|
@@ -22,7 +22,7 @@ export default function Select(props) {
|
|
|
22
22
|
value={item.value ? item.value : item}
|
|
23
23
|
// selected={
|
|
24
24
|
// item.value
|
|
25
|
-
// ? item.value
|
|
25
|
+
// ? item.value === props.valueSelected && "selected"
|
|
26
26
|
// : item === props.valueSelected && "selected"
|
|
27
27
|
// }
|
|
28
28
|
>
|
|
@@ -25,13 +25,13 @@ export const CarouselImagesLogin = ({
|
|
|
25
25
|
circulos[0].classList.add("resaltado");
|
|
26
26
|
const slideshow = () => {
|
|
27
27
|
img2.src = images[i];
|
|
28
|
-
const circulo_actual = Array.from(circulos).find((el) => el.id
|
|
28
|
+
const circulo_actual = Array.from(circulos).find((el) => el.id === i);
|
|
29
29
|
Array.from(circulos).forEach((cir) => cir.classList.remove("resaltado"));
|
|
30
30
|
circulo_actual.classList.add("resaltado");
|
|
31
31
|
img1.classList.add("right");
|
|
32
32
|
img2.classList.add("active");
|
|
33
33
|
i++;
|
|
34
|
-
if (i
|
|
34
|
+
if (i === images.length) {
|
|
35
35
|
i = 0;
|
|
36
36
|
}
|
|
37
37
|
setTimeout(() => {
|
|
@@ -7,7 +7,6 @@ import { Tooltip } from "../../atoms/Tooltip";
|
|
|
7
7
|
export const ImageTooltip = (props) => {
|
|
8
8
|
const {
|
|
9
9
|
className, // string
|
|
10
|
-
width, // string
|
|
11
10
|
sizeLoading, // number
|
|
12
11
|
colorLoading, // string
|
|
13
12
|
classNameLoading, // string
|
|
@@ -19,15 +18,6 @@ export const ImageTooltip = (props) => {
|
|
|
19
18
|
position, // (string) posicion del contenedor tooltip (values en object positions)
|
|
20
19
|
} = props;
|
|
21
20
|
const [imgLoad, setImgLoad] = useState();
|
|
22
|
-
const [loading, setLoading] = useState(false);
|
|
23
|
-
|
|
24
|
-
/* solo para hacer pruebas en modo dev
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
setTimeout(() => {
|
|
27
|
-
setLoading(false);
|
|
28
|
-
}, 5000);
|
|
29
|
-
}, []);
|
|
30
|
-
*/
|
|
31
21
|
|
|
32
22
|
return (
|
|
33
23
|
<Tooltip
|
|
@@ -37,9 +27,9 @@ export const ImageTooltip = (props) => {
|
|
|
37
27
|
followCursor={false}
|
|
38
28
|
className={className}
|
|
39
29
|
classNameTooltip={classNameTooltip}
|
|
40
|
-
componentTooltip={imgLoad !== undefined &&
|
|
30
|
+
componentTooltip={imgLoad !== undefined && componentTooltip}
|
|
41
31
|
>
|
|
42
|
-
{src &&
|
|
32
|
+
{src && imgLoad === undefined && (
|
|
43
33
|
<ContainerLoading
|
|
44
34
|
className={classNameLoading}
|
|
45
35
|
sizeLoading={sizeLoading}
|
|
@@ -49,14 +39,14 @@ export const ImageTooltip = (props) => {
|
|
|
49
39
|
</ContainerLoading>
|
|
50
40
|
)}
|
|
51
41
|
|
|
52
|
-
{(!src ||
|
|
42
|
+
{(!src || imgLoad === false) && componentDefault}
|
|
53
43
|
|
|
54
44
|
<Img
|
|
55
45
|
className={classNameImg}
|
|
56
|
-
src={src}
|
|
57
|
-
onLoad={(
|
|
58
|
-
onError={(
|
|
59
|
-
show={imgLoad === true
|
|
46
|
+
src={`${src}?${new Date().getMilliseconds()}`}
|
|
47
|
+
onLoad={() => setImgLoad(true)}
|
|
48
|
+
onError={() => setImgLoad(false)}
|
|
49
|
+
show={imgLoad === true}
|
|
60
50
|
/>
|
|
61
51
|
</Tooltip>
|
|
62
52
|
);
|
|
@@ -142,7 +142,7 @@ export const SelectV2 = (props) => {
|
|
|
142
142
|
} else if (selectedItemsCopy.length === 1) {
|
|
143
143
|
let labelItem = undefined;
|
|
144
144
|
for (const item of items) {
|
|
145
|
-
if (item.value
|
|
145
|
+
if (item.value === selectedItemsCopy[0]) {
|
|
146
146
|
labelItem = item.label;
|
|
147
147
|
break;
|
|
148
148
|
}
|
|
@@ -135,15 +135,16 @@ chatTicket_userTECH.args = {
|
|
|
135
135
|
chatContainerType: "fixed",
|
|
136
136
|
chatData: {
|
|
137
137
|
id: 130,
|
|
138
|
-
ticketOwnerUserId:
|
|
139
|
-
ticketCompany:
|
|
140
|
-
statusTicket: "
|
|
138
|
+
ticketOwnerUserId: 194,
|
|
139
|
+
ticketCompany: undefined,
|
|
140
|
+
statusTicket: "PENDING",
|
|
141
141
|
currentUser: {
|
|
142
142
|
token:
|
|
143
|
-
"eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.
|
|
143
|
+
"eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJmNTkyN2Y4ZS1jYmY3LTQ5MjItOWUwOS1lNjllYzBiMjczMWEiLCJjb2duaXRvOmdyb3VwcyI6WyJ1c3VhcmlvX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfWE1aUWRxa0dqIiwicGhvbmVfbnVtYmVyX3ZlcmlmaWVkIjpmYWxzZSwiY29nbml0bzp1c2VybmFtZSI6ImY1OTI3ZjhlLWNiZjctNDkyMi05ZTA5LWU2OWVjMGIyNzMxYSIsImNvZ25pdG86cm9sZXMiOlsiYXJuOmF3czppYW06Ojg5ODY3MDIzMjgwNzpyb2xlXC9jb250ZW50b2gtZGV2LXVzLWVhc3QtMS1sYW1iZGFSb2xlIl0sImF1ZCI6IjVhYzh0cGdzNmdic3ExM2ZydnJwaWVlcDQwIiwiZXZlbnRfaWQiOiJlYTRlZmQ1Zi1mYTg4LTRjNDEtYTM3Ny02MWVkNmY0YTMyOTciLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY4MDA1Njg2NSwibmFtZSI6IklzbWFlbCBMb3BleiIsInBob25lX251bWJlciI6Iis1MjMxMTEzNjYzMzYiLCJleHAiOjE2ODAwNjA0NjUsImlhdCI6MTY4MDA1Njg2NSwiZW1haWwiOiJpbG9wZXpAY29udGVudG9oLmNvbSJ9.oRuv3LkdvctEMUjmeGw0-XefzV_Aoh1O2hFMik4RxpkkCUeP1O7AjA7lJI6sgoqa9Nwa2fCPRXk6ufi84UbgxGEgkupQmAvXTHQCw_uwCUVAZitlNGXSBl-VSisMuXSnckxdZQ1MvLV5BgLmiw4mu6HxKDN-Uw0xc7yL_yDtGu3NWxoO0Cm2zbej8jYLE9DV9wG297bjfzVQ7hzpEfEcB52I5Tg6nF2VDTx-8_m4mVVrpisbV5uBoYokbFyyOFVLZzUU7Je5uHukscHS5dje9IMTY8DE5S8xUWJubHjf_ktcy7Y2-F2cG5dI5oSdrBNU-wNNW5-OtRLgclSJLmbPCw",
|
|
144
144
|
id: 28,
|
|
145
145
|
companyId: 1,
|
|
146
146
|
isUserTech: true,
|
|
147
147
|
},
|
|
148
148
|
},
|
|
149
|
+
classNameContainerFixed: "chatTicket",
|
|
149
150
|
};
|
|
@@ -68,7 +68,7 @@ export const ChatLists = (props) => {
|
|
|
68
68
|
|
|
69
69
|
{/* label interno */}
|
|
70
70
|
<div className="container-indicators">
|
|
71
|
-
{currentCompanyId
|
|
71
|
+
{currentCompanyId === companyId && (
|
|
72
72
|
<div className="label-ownCompany">Interno</div>
|
|
73
73
|
)}
|
|
74
74
|
</div>
|
|
@@ -76,7 +76,7 @@ export const ChatLists = (props) => {
|
|
|
76
76
|
);
|
|
77
77
|
|
|
78
78
|
// checar si es chat abierto
|
|
79
|
-
if (company.statusChat
|
|
79
|
+
if (company.statusChat === "closed") jsxClosedChats.push(itemChat);
|
|
80
80
|
else jsxOpenChats.push(itemChat);
|
|
81
81
|
}
|
|
82
82
|
setOpenChats(jsxOpenChats);
|
|
@@ -97,8 +97,8 @@ export const ContentChat = (props) => {
|
|
|
97
97
|
|
|
98
98
|
// comenzar temporizador del update de 20s
|
|
99
99
|
useEffect(() => {
|
|
100
|
-
//return;
|
|
101
|
-
if (startUpdate
|
|
100
|
+
// return; // -- descomentarizar para hacer pruebas sin update
|
|
101
|
+
if (startUpdate === 0) return;
|
|
102
102
|
const processID = setTimeout(() => {
|
|
103
103
|
setRunUpdate((prev) => prev + 1);
|
|
104
104
|
}, 15000);
|
|
@@ -109,10 +109,10 @@ export const ContentChat = (props) => {
|
|
|
109
109
|
// ejecutar update
|
|
110
110
|
useEffect(() => {
|
|
111
111
|
if (chatType === "merchant_product") {
|
|
112
|
-
if (singleChat.items) getUpdateLatestMerchantProduct();
|
|
112
|
+
if (singleChat.items) getUpdateLatestMerchantProduct(true);
|
|
113
113
|
else getInitialMerchantProduct();
|
|
114
114
|
} else if (chatType === "order_product") {
|
|
115
|
-
if (companies) getUpdateLatestOrderProduct();
|
|
115
|
+
if (companies) getUpdateLatestOrderProduct(true);
|
|
116
116
|
else getInitialOrderProduct();
|
|
117
117
|
} else {
|
|
118
118
|
if (singleChat.items) getUpdateLatestTicket(true);
|
|
@@ -146,6 +146,7 @@ export const ContentChat = (props) => {
|
|
|
146
146
|
return;
|
|
147
147
|
}
|
|
148
148
|
// success
|
|
149
|
+
setStartUpdate((prev) => prev + 1);
|
|
149
150
|
setCurrentUser({
|
|
150
151
|
id: response.body.data.currentUserId,
|
|
151
152
|
companyId: response.body.data.currentCompanyId,
|
|
@@ -379,16 +380,18 @@ export const ContentChat = (props) => {
|
|
|
379
380
|
/*=======================================================================
|
|
380
381
|
PETICION GET UPDATE_LATEST SEGUN EL TIPO DE CHAT
|
|
381
382
|
======================================================================= */
|
|
382
|
-
const getUpdateLatestMerchantProduct = async () => {
|
|
383
|
+
const getUpdateLatestMerchantProduct = async (fromUpdate = false) => {
|
|
383
384
|
const paramsQuery = {
|
|
384
385
|
getType: "updateLatest",
|
|
385
386
|
id: JSON.stringify(dataChat.id),
|
|
386
387
|
version: JSON.stringify(dataChat.version),
|
|
387
388
|
date: encodeURIComponent(lastUpdateDate),
|
|
388
389
|
};
|
|
390
|
+
const paramsHeaders = { Authorization: dataChat.userToken };
|
|
389
391
|
const response = await fetchGET(
|
|
390
392
|
process.env.REACT_APP_PRODUCTS_CHAT_ENDPOINT,
|
|
391
|
-
paramsQuery
|
|
393
|
+
paramsQuery,
|
|
394
|
+
paramsHeaders
|
|
392
395
|
);
|
|
393
396
|
if (!response.body) {
|
|
394
397
|
console.log("ERROR updateLatest:", {
|
|
@@ -398,6 +401,7 @@ export const ContentChat = (props) => {
|
|
|
398
401
|
return;
|
|
399
402
|
}
|
|
400
403
|
// success
|
|
404
|
+
setStartUpdate((prev) => prev + 1);
|
|
401
405
|
setLastUpdateDate(response.body.data.lastUpdateDate);
|
|
402
406
|
// actualizar la lista de los users
|
|
403
407
|
updateAllUsers(response.body.users);
|
|
@@ -405,12 +409,13 @@ export const ContentChat = (props) => {
|
|
|
405
409
|
let newSingleChat = { ...singleChat };
|
|
406
410
|
newSingleChat.items = addNewItemsChat(
|
|
407
411
|
newSingleChat.items,
|
|
408
|
-
response.body.items
|
|
412
|
+
response.body.items,
|
|
413
|
+
fromUpdate
|
|
409
414
|
);
|
|
410
415
|
setSingleChat(newSingleChat);
|
|
411
416
|
};
|
|
412
417
|
|
|
413
|
-
const getUpdateLatestOrderProduct = async () => {
|
|
418
|
+
const getUpdateLatestOrderProduct = async (fromUpdate = false) => {
|
|
414
419
|
const paramsQuery = {
|
|
415
420
|
getType: "updateLatest",
|
|
416
421
|
id: JSON.stringify(dataChat.id),
|
|
@@ -436,7 +441,7 @@ export const ContentChat = (props) => {
|
|
|
436
441
|
return;
|
|
437
442
|
}
|
|
438
443
|
// success
|
|
439
|
-
|
|
444
|
+
setStartUpdate((prev) => prev + 1);
|
|
440
445
|
// cuando cambie la lista de chats por un cambio de version o estatus
|
|
441
446
|
if (response.body.data.status) {
|
|
442
447
|
setIsLoading(true);
|
|
@@ -481,7 +486,8 @@ export const ContentChat = (props) => {
|
|
|
481
486
|
Object.keys(response.body.companies).forEach((companyId) => {
|
|
482
487
|
companiesList[companyId].items = addNewItemsChat(
|
|
483
488
|
companiesList[companyId].items,
|
|
484
|
-
response.body.companies[companyId].items
|
|
489
|
+
response.body.companies[companyId].items,
|
|
490
|
+
fromUpdate
|
|
485
491
|
);
|
|
486
492
|
});
|
|
487
493
|
setCompanies(companiesList);
|
|
@@ -609,15 +615,13 @@ export const ContentChat = (props) => {
|
|
|
609
615
|
};
|
|
610
616
|
|
|
611
617
|
const createItemsMerchantProduct = async (items = []) => {
|
|
612
|
-
const
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
userId: JSON.stringify(currentUser.id),
|
|
616
|
-
items: JSON.stringify(items),
|
|
617
|
-
};
|
|
618
|
+
const { id, version } = dataChat;
|
|
619
|
+
const paramsBody = { id, version, items };
|
|
620
|
+
const paramsHeaders = { Authorization: dataChat.userToken };
|
|
618
621
|
const response = await fetchPOST(
|
|
619
622
|
process.env.REACT_APP_PRODUCTS_CHAT_ENDPOINT,
|
|
620
|
-
paramsBody
|
|
623
|
+
paramsBody,
|
|
624
|
+
paramsHeaders
|
|
621
625
|
);
|
|
622
626
|
if (!response.body) {
|
|
623
627
|
return {
|
|
@@ -629,17 +633,18 @@ export const ContentChat = (props) => {
|
|
|
629
633
|
|
|
630
634
|
const createItemsOrderProduct = async (items = []) => {
|
|
631
635
|
const paramsBody = {
|
|
632
|
-
id:
|
|
633
|
-
version:
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
receivedCompanyId: JSON.stringify(activeCompanyId),
|
|
636
|
+
id: dataChat.id,
|
|
637
|
+
version: currentArticle.version,
|
|
638
|
+
items,
|
|
639
|
+
orderId: dataChat.orderId,
|
|
640
|
+
sentCompanyId: currentUser.companyId,
|
|
641
|
+
receivedCompanyId: activeCompanyId,
|
|
639
642
|
};
|
|
643
|
+
const paramsHeaders = { Authorization: dataChat.userToken };
|
|
640
644
|
const response = await fetchPOST(
|
|
641
645
|
process.env.REACT_APP_PRODUCTS_CHAT_ENDPOINT,
|
|
642
|
-
paramsBody
|
|
646
|
+
paramsBody,
|
|
647
|
+
paramsHeaders
|
|
643
648
|
);
|
|
644
649
|
if (!response.body) {
|
|
645
650
|
return {
|
|
@@ -655,9 +660,11 @@ export const ContentChat = (props) => {
|
|
|
655
660
|
userId: JSON.stringify(dataChat.currentUser.id),
|
|
656
661
|
items: JSON.stringify(items),
|
|
657
662
|
};
|
|
663
|
+
const paramsHeaders = { Authorization: dataChat.userToken };
|
|
658
664
|
const response = await fetchPOST(
|
|
659
665
|
process.env.REACT_APP_TICKETS_CHAT_ENDPOINT,
|
|
660
|
-
paramsBody
|
|
666
|
+
paramsBody,
|
|
667
|
+
paramsHeaders
|
|
661
668
|
);
|
|
662
669
|
if (!response.body) {
|
|
663
670
|
return {
|
|
@@ -739,8 +746,8 @@ export const ContentChat = (props) => {
|
|
|
739
746
|
}, 5000);
|
|
740
747
|
}
|
|
741
748
|
return Object.values(itemsId).sort((a, b) => {
|
|
742
|
-
if (a.id
|
|
743
|
-
if (a.id
|
|
749
|
+
if (a.id > b.id) return 1;
|
|
750
|
+
if (a.id < b.id) return -1;
|
|
744
751
|
return 0;
|
|
745
752
|
});
|
|
746
753
|
};
|
|
@@ -3,13 +3,11 @@ import {
|
|
|
3
3
|
ContainerItemCarrousel,
|
|
4
4
|
ContainerMain,
|
|
5
5
|
ContainerSecondary,
|
|
6
|
-
ContainerTooltipFileName,
|
|
7
6
|
} from "./styles";
|
|
8
7
|
import { useEffect, useState, useRef } from "react";
|
|
9
8
|
import AWS from "aws-sdk";
|
|
10
9
|
import { v4 as uuidv4 } from "uuid";
|
|
11
10
|
import { Image as CustomImage } from "../../../atoms/Image";
|
|
12
|
-
import { ImageTooltip } from "../../../molecules/ImageTooltip";
|
|
13
11
|
import {
|
|
14
12
|
faArrowUp as IconSend,
|
|
15
13
|
faImage as IconImage,
|
|
@@ -21,7 +19,7 @@ import { ButtonV2 } from "../../../atoms/ButtonV2";
|
|
|
21
19
|
import { IconFile } from "../../../atoms/IconFile";
|
|
22
20
|
import { Modal } from "../../Modal";
|
|
23
21
|
import { Tooltip } from "../../../atoms/Tooltip";
|
|
24
|
-
import { Fade, Tooltip as TooltipMUI
|
|
22
|
+
import { Fade, Tooltip as TooltipMUI } from "@mui/material";
|
|
25
23
|
import { ButtonFileChooser } from "../../../atoms/ButtonFileChooser";
|
|
26
24
|
import { Slide } from "@mui/material";
|
|
27
25
|
// carrousel
|
|
@@ -186,7 +184,7 @@ export const Footer = (props) => {
|
|
|
186
184
|
}
|
|
187
185
|
// enviar file a AWS
|
|
188
186
|
customFiles.push({
|
|
189
|
-
itemType: file.type.split("/")[0]
|
|
187
|
+
itemType: file.type.split("/")[0] === "image" ? "img" : "file",
|
|
190
188
|
key: fileKey,
|
|
191
189
|
errorOwn: errorMessage,
|
|
192
190
|
});
|
|
@@ -208,6 +206,7 @@ export const Footer = (props) => {
|
|
|
208
206
|
}
|
|
209
207
|
});
|
|
210
208
|
} catch (err) {
|
|
209
|
+
console.log(err);
|
|
211
210
|
disableSecondaryContainer(false);
|
|
212
211
|
setModalAlert({
|
|
213
212
|
show: true,
|
|
@@ -236,10 +235,7 @@ export const Footer = (props) => {
|
|
|
236
235
|
valueItem.height = imgSize.height;
|
|
237
236
|
}
|
|
238
237
|
}
|
|
239
|
-
items.push({
|
|
240
|
-
type: file.itemType,
|
|
241
|
-
value: JSON.stringify(valueItem),
|
|
242
|
-
});
|
|
238
|
+
items.push({ type: file.itemType, value: JSON.stringify(valueItem) });
|
|
243
239
|
}
|
|
244
240
|
}
|
|
245
241
|
|