contentoh-components-library 21.3.8 → 21.3.9

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/.env.development CHANGED
@@ -31,3 +31,5 @@ REACT_APP_KUTS3=AKIA5CPHLQTTS22HCGHW
31
31
  REACT_APP_AKUTS3=RSpwEaM0fsLEgN7BJzRyCKqyU0lNExTsPUvxyNXm
32
32
  REACT_APP_USER_POOL_ID=us-east-1_XMZQdqkGj
33
33
  REACT_APP_USER_POOL_WEB_CLIENT_ID=5ac8tpgs6gbsq13frvrpieep40
34
+ REACT_APP_KEY_UPLOAD_TO_S3=AKIA5CPHLQTTYNYWQ2TM
35
+ REACT_APP_ACCESS_KEY_UPLOAD_TO_S3=zGYWR4rW52rqg1bW1CrC00zBXv2od0mNCF8WGcvr
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.chatTECH_ticketOpen_user65 = exports.chatTECH_ticketOpenOwn_user66 = exports.chatTECH_ticketClosed_user65 = exports.chatTECH_ticketClosedOwn_user66 = exports.chatPROV_orderProduct = exports.chatFAB_ticketOpen_user49 = exports.chatFAB_ticketClosed_user49 = exports.chatFAB_orderProduct_user49 = exports.chatFAB_orderProduct_user37 = exports.chatCAD_orderProduct = exports.chatCAD_merchantsProduct = void 0;
8
+ exports.default = exports.chatTicket_userTECH = exports.chatTicket_userNORMAL = exports.chatPROV_orderProduct = exports.chatFAB_orderProduct_user49 = exports.chatFAB_orderProduct_user37 = exports.chatCAD_orderProduct = exports.chatCAD_merchantsProduct = void 0;
9
9
 
10
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
11
 
@@ -112,103 +112,37 @@ chatPROV_merchantsProduct.args = {
112
112
  };*/
113
113
  // ejemplo del chat ticket con user FAB
114
114
 
115
- var chatFAB_ticketClosed_user49 = Template.bind({});
116
- exports.chatFAB_ticketClosed_user49 = chatFAB_ticketClosed_user49;
117
- chatFAB_ticketClosed_user49.args = {
115
+ var chatTicket_userNORMAL = Template.bind({});
116
+ exports.chatTicket_userNORMAL = chatTicket_userNORMAL;
117
+ chatTicket_userNORMAL.args = {
118
118
  chatType: "ticket",
119
119
  chatContainerType: "fixed",
120
120
  chatData: {
121
- id: 10,
122
- ticketOwnerUserId: 23,
123
- statusTicket: "COMPLETED",
121
+ id: 104,
122
+ ticketOwnerUserId: 49,
123
+ statusTicket: "IN_PROGRESS",
124
124
  currentUser: {
125
- id: 49,
126
- companyId: 2,
125
+ token: "eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiI1ODg0YWUzNC01OWQ2LTQ0NTQtYjk4ZS04MjE1MThiY2MzYTciLCJjb2duaXRvOmdyb3VwcyI6WyJ1c3VhcmlvX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfWE1aUWRxa0dqIiwicGhvbmVfbnVtYmVyX3ZlcmlmaWVkIjpmYWxzZSwiY29nbml0bzp1c2VybmFtZSI6IjU4ODRhZTM0LTU5ZDYtNDQ1NC1iOThlLTgyMTUxOGJjYzNhNyIsImNvZ25pdG86cm9sZXMiOlsiYXJuOmF3czppYW06Ojg5ODY3MDIzMjgwNzpyb2xlXC9jb250ZW50b2gtZGV2LXVzLWVhc3QtMS1sYW1iZGFSb2xlIl0sImF1ZCI6IjVhYzh0cGdzNmdic3ExM2ZydnJwaWVlcDQwIiwiZXZlbnRfaWQiOiI2YmI0NzExMi03ZTNiLTRjYzUtYmVhZS02MzMxZjEwYjk3MzIiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY2NTYxNjI0MSwibmFtZSI6IkNhZGVuYSBJc21hZWwiLCJwaG9uZV9udW1iZXIiOiIrNTIzMTExMzY2MzM2IiwiZXhwIjoxNjY1NjE5ODQxLCJpYXQiOjE2NjU2MTYyNDEsImVtYWlsIjoiY2FkZW5hLmlzbWFlbEBhbGxmcmVlbWFpbC5uZXQifQ.gi1Jiua_O175vHLy-CYXOR945IRcObIj5j1LNk4_EhcKPz-MzPnfWDLH7L3sTiNS-VUhIRtAhtUVPUSYv0oP1qfJwFHomerxJvYgJge8SLWPjL6yGBnTxAvHVbuLU8kcaoZup2eNMV6XOIAEBAHeCDm4vW0rYWwfrKADPyYGZQF2si14o3wtgSMX5a4ccxGwikT3to3HttWBhmJs_I1Xr_BvBxePc4WghjQr5GVGbq8vhr4HwdkTmlcJAnQsc_fmIdbJ_ACyTa1wr343KYYOQVwBjAmZDa6rU16y0yTr_J4IVWY3aS5UpBEBHy4XE0c76UaN-_DcGiVl4ayWQIUz8A",
126
+ id: 59,
127
+ companyId: 817,
127
128
  isUserTech: false
128
129
  }
129
130
  }
130
131
  }; // ejemplo del chat ticket con user TECH
131
132
 
132
- var chatTECH_ticketClosed_user65 = Template.bind({});
133
- exports.chatTECH_ticketClosed_user65 = chatTECH_ticketClosed_user65;
134
- chatTECH_ticketClosed_user65.args = {
135
- chatType: "ticket",
136
- chatContainerType: "fixed",
137
- chatData: {
138
- id: 10,
139
- ticketOwnerUserId: 23,
140
- statusTicket: "COMPLETED",
141
- currentUser: {
142
- id: 65,
143
- companyId: 2,
144
- isUserTech: true
145
- }
146
- }
147
- }; // ejemplo del chat ticket con user TECH propietario del ticket
148
-
149
- var chatTECH_ticketClosedOwn_user66 = Template.bind({});
150
- exports.chatTECH_ticketClosedOwn_user66 = chatTECH_ticketClosedOwn_user66;
151
- chatTECH_ticketClosedOwn_user66.args = {
133
+ var chatTicket_userTECH = Template.bind({});
134
+ exports.chatTicket_userTECH = chatTicket_userTECH;
135
+ chatTicket_userTECH.args = {
152
136
  chatType: "ticket",
153
137
  chatContainerType: "fixed",
154
138
  chatData: {
155
139
  id: 10,
156
- ticketOwnerUserId: 66,
157
- statusTicket: "COMPLETED",
158
- currentUser: {
159
- id: 66,
160
- companyId: 2,
161
- isUserTech: true
162
- }
163
- }
164
- }; // ejemplo del chat ticket con user FAB
165
-
166
- var chatFAB_ticketOpen_user49 = Template.bind({});
167
- exports.chatFAB_ticketOpen_user49 = chatFAB_ticketOpen_user49;
168
- chatFAB_ticketOpen_user49.args = {
169
- chatType: "ticket",
170
- chatContainerType: "fixed",
171
- chatData: {
172
- id: 11,
173
- ticketOwnerUserId: 23,
174
- statusTicket: "PENDING",
175
- currentUser: {
176
- id: 49,
177
- companyId: 2,
178
- isUserTech: false
179
- }
180
- }
181
- }; // ejemplo del chat ticket con user TECH
182
-
183
- var chatTECH_ticketOpen_user65 = Template.bind({});
184
- exports.chatTECH_ticketOpen_user65 = chatTECH_ticketOpen_user65;
185
- chatTECH_ticketOpen_user65.args = {
186
- chatType: "ticket",
187
- chatContainerType: "fixed",
188
- chatData: {
189
- id: 11,
190
- ticketOwnerUserId: 23,
191
- statusTicket: "PENDING",
192
- currentUser: {
193
- id: 65,
194
- companyId: 2,
195
- isUserTech: true
196
- }
197
- }
198
- }; // ejemplo del chat ticket con user TECH propietario del ticket
199
-
200
- var chatTECH_ticketOpenOwn_user66 = Template.bind({});
201
- exports.chatTECH_ticketOpenOwn_user66 = chatTECH_ticketOpenOwn_user66;
202
- chatTECH_ticketOpenOwn_user66.args = {
203
- chatType: "ticket",
204
- chatContainerType: "fixed",
205
- chatData: {
206
- id: 11,
207
- ticketOwnerUserId: 66,
208
- statusTicket: "PENDING",
140
+ ticketOwnerUserId: 49,
141
+ statusTicket: "IN_PROGRESS",
209
142
  currentUser: {
210
- id: 66,
211
- companyId: 2,
143
+ token: "eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJmNTkyN2Y4ZS1jYmY3LTQ5MjItOWUwOS1lNjllYzBiMjczMWEiLCJjb2duaXRvOmdyb3VwcyI6WyJ1c3VhcmlvX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfWE1aUWRxa0dqIiwicGhvbmVfbnVtYmVyX3ZlcmlmaWVkIjpmYWxzZSwiY29nbml0bzp1c2VybmFtZSI6ImY1OTI3ZjhlLWNiZjctNDkyMi05ZTA5LWU2OWVjMGIyNzMxYSIsImNvZ25pdG86cm9sZXMiOlsiYXJuOmF3czppYW06Ojg5ODY3MDIzMjgwNzpyb2xlXC9jb250ZW50b2gtZGV2LXVzLWVhc3QtMS1sYW1iZGFSb2xlIl0sImF1ZCI6IjVhYzh0cGdzNmdic3ExM2ZydnJwaWVlcDQwIiwiZXZlbnRfaWQiOiI5M2FkOTM5Yy04MzJjLTQ4NWItOWUzMS0yN2MxNzBjMDk1NWEiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY2OTY2MjU5MiwibmFtZSI6IklzbWFlbCBMb3BleiIsInBob25lX251bWJlciI6Iis1MjMxMTEzNjYzMzYiLCJleHAiOjE2Njk2NjYxOTIsImlhdCI6MTY2OTY2MjU5MiwiZW1haWwiOiJpbG9wZXpAY29udGVudG9oLmNvbSJ9.hhdlQk-ljHpyZPRoG02YcvPow8jpm9coZfmEuZ29vIVX7bX5k05Ss3FkaT0dYNr2qEvqZHHqH61oJvx4xr2i6z2c3xEZxyJZFR-Cc_skhH0UwGXbCH9up5PW1aipY5rL45E42R7GKSGmB5Z-B7vxe2NcL-ZojYZkXNZ7Gx_lM8Vpq-XsFLJ4nCJlH7vx9D4SkREN3lLfYIIgqNrxJ_wqfqvcqexwRJfnr76ZqCuDR4dTWsES2Lf5D8Wa_wkQAjQNdzP7ai28l9fRyCSwkTxvamdJkx7p-tssOL5pAnCsKkD22UN-09c1bhuGrgfKWUV4awbptfjvHS7TSq0bWiv4gQ",
144
+ id: 28,
145
+ companyId: 1,
212
146
  isUserTech: true
213
147
  }
214
148
  }
@@ -43,6 +43,8 @@ var _material = require("@mui/material");
43
43
 
44
44
  var _ImagePreview = require("../../../atoms/ImagePreview");
45
45
 
46
+ var _handle_userTech = require("../../../../global-files/handle_userTech");
47
+
46
48
  var _jsxRuntime = require("react/jsx-runtime");
47
49
 
48
50
  var ContainerItems = function ContainerItems(props) {
@@ -466,10 +468,10 @@ var ContainerItems = function ContainerItems(props) {
466
468
  var ownMessage = false; // user tech
467
469
 
468
470
  if (currentUser.isUserTech) {
469
- if (users[item.userId].isUserTech) ownMessage = true;
471
+ if ((0, _handle_userTech.isUserTech)(users[item.userId].isUserTech)) ownMessage = true;
470
472
  } // user normal
471
473
  else {
472
- if (!users[item.userId].isUserTech) {
474
+ if (!(0, _handle_userTech.isUserTech)(users[item.userId].isUserTech)) {
473
475
  if (currentUser.companyId == users[item.userId].companyId) {
474
476
  ownMessage = true;
475
477
  }
@@ -192,17 +192,17 @@ var ContentChat = function ContentChat(props) {
192
192
 
193
193
  if (chatType === "merchant_product") getInitialMerchantProduct();else if (chatType === "order_product") getInitialOrderProduct();else getInitialTicket();
194
194
  }
195
- }, [dataChat]); // comenzar temporizador del update de 30s
195
+ }, [dataChat]); // comenzar temporizador del update de 20s
196
196
 
197
197
  (0, _react.useEffect)(function () {
198
198
  //return; -- descomentarizar para hacer pruebas sin update
199
199
  if (startUpdate == 0) return;
200
- console.log("START UPDATE en 30s");
200
+ console.log("START UPDATE en 20s");
201
201
  var processID = setTimeout(function () {
202
202
  setRunUpdate(function (prev) {
203
203
  return prev + 1;
204
204
  });
205
- }, 30000);
205
+ }, 20000);
206
206
  setProcessUpdateID(processID);
207
207
  }, [startUpdate]); // ejecutar update
208
208
 
@@ -388,31 +388,50 @@ var ContentChat = function ContentChat(props) {
388
388
 
389
389
  var getInitialTicket = /*#__PURE__*/function () {
390
390
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
391
- var paramsQuery, response;
391
+ var _dataChat$currentUser, _dataChat$currentUser2, _dataChat$currentUser3, _dataChat$currentUser4;
392
+
393
+ var dataUser, paramsQuery, response;
392
394
  return _regenerator.default.wrap(function _callee3$(_context3) {
393
395
  while (1) {
394
396
  switch (_context3.prev = _context3.next) {
395
397
  case 0:
396
- console.log("======== INITIAL chat =======");
398
+ console.log("\n======== INITIAL chat =======");
397
399
  stopUpdate(); // finalizamos el temporizador
398
400
 
399
- paramsQuery = {
401
+ dataUser = {
402
+ id: (_dataChat$currentUser = dataChat.currentUser) === null || _dataChat$currentUser === void 0 ? void 0 : _dataChat$currentUser.id,
403
+ companyId: (_dataChat$currentUser2 = dataChat.currentUser) === null || _dataChat$currentUser2 === void 0 ? void 0 : _dataChat$currentUser2.companyId,
404
+ isUserTech: (_dataChat$currentUser3 = dataChat.currentUser) === null || _dataChat$currentUser3 === void 0 ? void 0 : _dataChat$currentUser3.isUserTech
405
+ };
406
+ /*
407
+ console.log("values send query:", {
408
+ id: dataChat.id,
400
409
  getType: "initial",
410
+ currentUser: dataUser,
411
+ currentItemsFront: getItemsIdSingleChat(),
412
+ });
413
+ */
414
+
415
+ paramsQuery = {
401
416
  id: JSON.stringify(dataChat.id),
402
- isUserTech: JSON.stringify(dataChat.currentUser.isUserTech)
417
+ getType: "initial",
418
+ currentUser: (0, _utils.encodeUriJson)(dataUser),
419
+ currentItemsFront: (0, _utils.encodeUriJson)(getItemsIdSingleChat())
403
420
  };
404
- _context3.next = 5;
405
- return (0, _handle_http.fetchGET)(process.env.REACT_APP_TICKETS_CHAT_ENDPOINT, paramsQuery);
421
+ _context3.next = 6;
422
+ return (0, _handle_http.fetchGET)(process.env.REACT_APP_TICKETS_CHAT_ENDPOINT, paramsQuery, {
423
+ Authorization: (_dataChat$currentUser4 = dataChat.currentUser) === null || _dataChat$currentUser4 === void 0 ? void 0 : _dataChat$currentUser4.token
424
+ });
406
425
 
407
- case 5:
426
+ case 6:
408
427
  response = _context3.sent;
409
- // programar update en 30s
428
+ // programar update en 20s
410
429
  setStartUpdate(function (prev) {
411
430
  return prev + 1;
412
431
  });
413
432
 
414
433
  if (response.body) {
415
- _context3.next = 11;
434
+ _context3.next = 12;
416
435
  break;
417
436
  }
418
437
 
@@ -425,9 +444,9 @@ var ContentChat = function ContentChat(props) {
425
444
  setIsLoading(false);
426
445
  return _context3.abrupt("return");
427
446
 
428
- case 11:
447
+ case 12:
429
448
  // success
430
- console.log(response.body);
449
+ console.log("response initial:", response.body);
431
450
  setLastUpdateDate(response.body.data.lastUpdateDate);
432
451
  setAllUsers(response.body.users);
433
452
  setSingleChat({
@@ -440,7 +459,7 @@ var ContentChat = function ContentChat(props) {
440
459
  });
441
460
  setIsLoading(false);
442
461
 
443
- case 17:
462
+ case 18:
444
463
  case "end":
445
464
  return _context3.stop();
446
465
  }
@@ -577,33 +596,43 @@ var ContentChat = function ContentChat(props) {
577
596
 
578
597
  var getLoadMoreTicket = /*#__PURE__*/function () {
579
598
  var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
580
- var date, paramsQuery, response, newSingleChat;
599
+ var _dataChat$currentUser5, _dataChat$currentUser6, _dataChat$currentUser7, _dataChat$currentUser8;
600
+
601
+ var date, dataUser, paramsQuery, response, newSingleChat;
581
602
  return _regenerator.default.wrap(function _callee6$(_context6) {
582
603
  while (1) {
583
604
  switch (_context6.prev = _context6.next) {
584
605
  case 0:
585
- console.log("======== LOAD MORE chat =======");
606
+ console.log("\n======== LOAD MORE chat =======");
586
607
  stopUpdate(); // finalizamos el temporizador
587
608
 
588
609
  date = singleChat.items[singleChat.items.length - 1].date;
610
+ dataUser = {
611
+ id: (_dataChat$currentUser5 = dataChat.currentUser) === null || _dataChat$currentUser5 === void 0 ? void 0 : _dataChat$currentUser5.id,
612
+ companyId: (_dataChat$currentUser6 = dataChat.currentUser) === null || _dataChat$currentUser6 === void 0 ? void 0 : _dataChat$currentUser6.companyId,
613
+ isUserTech: (_dataChat$currentUser7 = dataChat.currentUser) === null || _dataChat$currentUser7 === void 0 ? void 0 : _dataChat$currentUser7.isUserTech
614
+ };
589
615
  paramsQuery = {
590
- getType: "loadMore",
591
616
  id: JSON.stringify(dataChat.id),
617
+ getType: "loadMore",
592
618
  date: encodeURIComponent(date),
593
- isUserTech: JSON.stringify(dataChat.currentUser.isUserTech)
619
+ currentUser: (0, _utils.encodeUriJson)(dataUser),
620
+ currentItemsFront: (0, _utils.encodeUriJson)(getItemsIdSingleChat())
594
621
  };
595
- _context6.next = 6;
596
- return (0, _handle_http.fetchGET)(process.env.REACT_APP_TICKETS_CHAT_ENDPOINT, paramsQuery);
622
+ _context6.next = 7;
623
+ return (0, _handle_http.fetchGET)(process.env.REACT_APP_TICKETS_CHAT_ENDPOINT, paramsQuery, {
624
+ Authorization: (_dataChat$currentUser8 = dataChat.currentUser) === null || _dataChat$currentUser8 === void 0 ? void 0 : _dataChat$currentUser8.token
625
+ });
597
626
 
598
- case 6:
627
+ case 7:
599
628
  response = _context6.sent;
600
- //programar update en 30s
629
+ //programar update en 20s
601
630
  setStartUpdate(function (prev) {
602
631
  return prev + 1;
603
632
  });
604
633
 
605
634
  if (response.body) {
606
- _context6.next = 10;
635
+ _context6.next = 11;
607
636
  break;
608
637
  }
609
638
 
@@ -612,9 +641,9 @@ var ContentChat = function ContentChat(props) {
612
641
  message: response.errorDetail
613
642
  });
614
643
 
615
- case 10:
644
+ case 11:
616
645
  // success
617
- console.log(response.body); // actualizar la lista de los users
646
+ console.log("response loadMore:", response.body); // actualizar la lista de los users
618
647
 
619
648
  updateAllUsers(response.body.users); // actualizar los items del chat
620
649
 
@@ -623,7 +652,7 @@ var ContentChat = function ContentChat(props) {
623
652
  newSingleChat.enabledLoadMore = response.body.items.length === 50;
624
653
  setSingleChat(newSingleChat);
625
654
 
626
- case 16:
655
+ case 17:
627
656
  case "end":
628
657
  return _context6.stop();
629
658
  }
@@ -804,31 +833,51 @@ var ContentChat = function ContentChat(props) {
804
833
 
805
834
  var getUpdateLatestTicket = /*#__PURE__*/function () {
806
835
  var _ref9 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
807
- var paramsQuery, response, newSingleChat;
836
+ var _dataChat$currentUser9, _dataChat$currentUser10, _dataChat$currentUser11, _dataChat$currentUser12;
837
+
838
+ var dataUser, paramsQuery, response, newSingleChat;
808
839
  return _regenerator.default.wrap(function _callee9$(_context9) {
809
840
  while (1) {
810
841
  switch (_context9.prev = _context9.next) {
811
842
  case 0:
812
- console.log("======== UPDATE chat =======");
843
+ console.log("\n======== UPDATE chat =======");
813
844
  console.log("lastUpdate:", lastUpdateDate);
814
- paramsQuery = {
845
+ dataUser = {
846
+ id: (_dataChat$currentUser9 = dataChat.currentUser) === null || _dataChat$currentUser9 === void 0 ? void 0 : _dataChat$currentUser9.id,
847
+ companyId: (_dataChat$currentUser10 = dataChat.currentUser) === null || _dataChat$currentUser10 === void 0 ? void 0 : _dataChat$currentUser10.companyId,
848
+ isUserTech: (_dataChat$currentUser11 = dataChat.currentUser) === null || _dataChat$currentUser11 === void 0 ? void 0 : _dataChat$currentUser11.isUserTech
849
+ };
850
+ /*
851
+ console.log("values send query:", {
852
+ id: dataChat.id,
815
853
  getType: "updateLatest",
854
+ date: lastUpdateDate,
855
+ currentUser: dataUser,
856
+ currentItemsFront: getItemsIdSingleChat(),
857
+ });
858
+ */
859
+
860
+ paramsQuery = {
816
861
  id: JSON.stringify(dataChat.id),
862
+ getType: "updateLatest",
817
863
  date: encodeURIComponent(lastUpdateDate),
818
- isUserTech: JSON.stringify(dataChat.currentUser.isUserTech)
864
+ currentUser: (0, _utils.encodeUriJson)(dataUser),
865
+ currentItemsFront: (0, _utils.encodeUriJson)(getItemsIdSingleChat())
819
866
  };
820
- _context9.next = 5;
821
- return (0, _handle_http.fetchGET)(process.env.REACT_APP_TICKETS_CHAT_ENDPOINT, paramsQuery);
867
+ _context9.next = 6;
868
+ return (0, _handle_http.fetchGET)(process.env.REACT_APP_TICKETS_CHAT_ENDPOINT, paramsQuery, {
869
+ Authorization: (_dataChat$currentUser12 = dataChat.currentUser) === null || _dataChat$currentUser12 === void 0 ? void 0 : _dataChat$currentUser12.token
870
+ });
822
871
 
823
- case 5:
872
+ case 6:
824
873
  response = _context9.sent;
825
- //programar update en 30s
874
+ //programar update en 20s
826
875
  setStartUpdate(function (prev) {
827
876
  return prev + 1;
828
877
  });
829
878
 
830
879
  if (response.body) {
831
- _context9.next = 11;
880
+ _context9.next = 12;
832
881
  break;
833
882
  }
834
883
 
@@ -852,14 +901,14 @@ var ContentChat = function ContentChat(props) {
852
901
  });
853
902
  return _context9.abrupt("return");
854
903
 
855
- case 11:
904
+ case 12:
856
905
  // limpiar error update
857
906
  if (errorUpdate.startDate) {
858
907
  setErrorUpdate({});
859
908
  } // success
909
+ //console.log("response update:", response.body);
860
910
 
861
911
 
862
- console.log(response.body);
863
912
  setLastUpdateDate(response.body.data.lastUpdateDate); // actualizar la lista de los users
864
913
 
865
914
  updateAllUsers(response.body.users); // actualizar los items del chat
@@ -1221,6 +1270,18 @@ var ContentChat = function ContentChat(props) {
1221
1270
  if (companies && Object.keys(companies).length < 2) return true;else return false;
1222
1271
  };
1223
1272
 
1273
+ var getItemsIdSingleChat = function getItemsIdSingleChat() {
1274
+ var itemsId = {};
1275
+
1276
+ if (Array.isArray(singleChat.items)) {
1277
+ singleChat.items.forEach(function (item) {
1278
+ if ((0, _utils.isValidNaturalNumber)(item.id)) itemsId[item.id] = true;
1279
+ });
1280
+ }
1281
+
1282
+ return itemsId;
1283
+ };
1284
+
1224
1285
  var getChatCompany = function getChatCompany() {
1225
1286
  if (chatType === "merchant_product" || chatType === "ticket") {
1226
1287
  return undefined;
@@ -142,7 +142,13 @@ var Chat = function Chat(props) {
142
142
  var currentUser = chatData.currentUser,
143
143
  id = chatData.id,
144
144
  statusTicket = chatData.statusTicket,
145
- ticketOwnerUserId = chatData.ticketOwnerUserId; // validar si ID del usuario conectado
145
+ ticketOwnerUserId = chatData.ticketOwnerUserId; // validar el token del usuario conectado
146
+
147
+ if ((0, _utils.isStringEmpty)(currentUser === null || currentUser === void 0 ? void 0 : currentUser.token)) {
148
+ setDataError("Tu identificación de usuario no fue especificado");
149
+ return;
150
+ } // validar si ID del usuario conectado
151
+
146
152
 
147
153
  if (!(0, _utils.isValidNaturalNumber)(currentUser === null || currentUser === void 0 ? void 0 : currentUser.id)) {
148
154
  setDataError("Tu ID de usuario no fue especificado");
@@ -156,7 +162,7 @@ var Chat = function Chat(props) {
156
162
  } // validar si el usuario conectado es de tecnologia o no
157
163
 
158
164
 
159
- if ((currentUser === null || currentUser === void 0 ? void 0 : currentUser.isUserTech) === undefined || typeof currentUser.isUserTech !== "boolean") {
165
+ if (![false, true].includes(currentUser === null || currentUser === void 0 ? void 0 : currentUser.isUserTech)) {
160
166
  setDataError("Tu tipo de usuario no fue especificado");
161
167
  return;
162
168
  } // validar ID del ticket
@@ -174,7 +180,7 @@ var Chat = function Chat(props) {
174
180
  } // validar el status del chat
175
181
 
176
182
 
177
- if ((0, _utils.isStringEmpty)(statusTicket)) {
183
+ if (!["IN_PROGRESS", "PENDING", "COMPLETED"].includes(statusTicket)) {
178
184
  setDataError("El estatus del ticket no es valido");
179
185
  return;
180
186
  }
@@ -204,65 +210,6 @@ var Chat = function Chat(props) {
204
210
  errorDetail: errorDetail
205
211
  });
206
212
  };
207
- /*
208
- const createItem = async (valueType, valueInput) => {
209
- clearTimeout(processUpdateID);
210
- let currentItems = items.slice();
211
- let paramsBody = {};
212
- let paramsHeaders = {};
213
- switch (chatType.toLowerCase()) {
214
- case "order_product": //------------------------------------------
215
- paramsBody = {
216
- articleId: articleId,
217
- valueType: valueType,
218
- value: valueInput,
219
- isOrderProduct: "1",
220
- orderId: orderId,
221
- retailerId: retailerId,
222
- };
223
- paramsHeaders = { Authorization: userToken };
224
- break;
225
- default:
226
- // merchants_products--------------------------------------
227
- paramsBody = {
228
- articleId: articleId,
229
- articleVersion: articleVersion,
230
- valueType: valueType,
231
- value: valueInput,
232
- isOrderProduct: "0",
233
- };
234
- paramsHeaders = { Authorization: userToken };
235
- }
236
- const response = await fetchPOST(
237
- process.env.REACT_APP_PRODUCTS_CHAT_ENDPOINT,
238
- paramsBody,
239
- paramsHeaders
240
- );
241
- if (!response.body) {
242
- let itemType =
243
- valueType === "txt"
244
- ? "el mensaje"
245
- : valueType === "img"
246
- ? "la imagen"
247
- : "el archivo";
248
- showModalAlert(
249
- `No fue posible agregar ${itemType} en el chat`,
250
- response.errorDetail,
251
- "error"
252
- );
253
- setItems(currentItems);
254
- } else {
255
- if (currentItems?.length == 0) {
256
- // console.log("NUEVO ITEM <> NUEVO INITIAL");
257
- await getInitial();
258
- } else {
259
- // console.log("NUEVO ITEM <> NUEVO UPDATE");
260
- await getUpdate();
261
- }
262
- }
263
- };
264
- */
265
-
266
213
 
267
214
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
268
215
  children: (chatContainerType === null || chatContainerType === void 0 ? void 0 : chatContainerType.toLowerCase()) === "fixed" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isUserTech = exports.isUserAdminTech = void 0;
7
+
8
+ var isUserTech = function isUserTech() {
9
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
10
+ return ["AS", "ADMIN-AS", "ADMIN"].includes(value);
11
+ };
12
+
13
+ exports.isUserTech = isUserTech;
14
+
15
+ var isUserAdminTech = function isUserAdminTech() {
16
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
17
+ return ["ADMIN-AS", "ADMIN"].includes(value);
18
+ };
19
+
20
+ exports.isUserAdminTech = isUserAdminTech;
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.isValidNaturalNumber = exports.isStringEmpty = exports.isObject = exports.isArrayEmpty = exports.getTime = exports.getResizeImgHeight = exports.getImageURL = exports.getImageSize = exports.getFullDate = exports.getFileName = exports.getFileExtension = exports.getDataBuffer = exports.getDataBase64 = exports.getCustomDate = exports.getBase64 = exports.decodeJSON = void 0;
8
+ exports.isValidNaturalNumber = exports.isStringEmpty = exports.isObject = exports.isArrayEmpty = exports.getTime = exports.getResizeImgHeight = exports.getImageURL = exports.getImageSize = exports.getFullDate = exports.getFileName = exports.getFileExtension = exports.getDataBuffer = exports.getDataBase64 = exports.getCustomDate = exports.getBase64 = exports.encodeUriJson = exports.decodeJSON = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
@@ -480,5 +480,21 @@ var isObject = function isObject(obj) {
480
480
  if (obj && (0, _typeof2.default)(obj) === "object" && !Array.isArray(obj)) return true;
481
481
  return false;
482
482
  };
483
+ /*------------------------
484
+ recibe un value y lo codifica
485
+ primero a JSON y luego a URI
486
+ --------------------------*/
487
+
488
+
489
+ exports.isObject = isObject;
490
+
491
+ var encodeUriJson = function encodeUriJson(value) {
492
+ try {
493
+ var encodeValue = encodeURIComponent(JSON.stringify(value));
494
+ return encodeValue;
495
+ } catch (err) {
496
+ return undefined;
497
+ }
498
+ };
483
499
 
484
- exports.isObject = isObject;
500
+ exports.encodeUriJson = encodeUriJson;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "contentoh-components-library",
3
- "version": "21.3.8",
3
+ "version": "21.3.9",
4
4
  "dependencies": {
5
5
  "@aws-amplify/auth": "^4.5.3",
6
6
  "@aws-amplify/datastore": "^3.11.0",
@@ -97,102 +97,38 @@ chatPROV_merchantsProduct.args = {
97
97
  };*/
98
98
 
99
99
  // ejemplo del chat ticket con user FAB
100
- export const chatFAB_ticketClosed_user49 = Template.bind({});
101
- chatFAB_ticketClosed_user49.args = {
100
+ export const chatTicket_userNORMAL = Template.bind({});
101
+ chatTicket_userNORMAL.args = {
102
102
  chatType: "ticket",
103
103
  chatContainerType: "fixed",
104
104
  chatData: {
105
- id: 10,
106
- ticketOwnerUserId: 23,
107
- statusTicket: "COMPLETED",
105
+ id: 104,
106
+ ticketOwnerUserId: 49,
107
+ statusTicket: "IN_PROGRESS",
108
108
  currentUser: {
109
- id: 49,
110
- companyId: 2,
109
+ token:
110
+ "eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiI1ODg0YWUzNC01OWQ2LTQ0NTQtYjk4ZS04MjE1MThiY2MzYTciLCJjb2duaXRvOmdyb3VwcyI6WyJ1c3VhcmlvX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfWE1aUWRxa0dqIiwicGhvbmVfbnVtYmVyX3ZlcmlmaWVkIjpmYWxzZSwiY29nbml0bzp1c2VybmFtZSI6IjU4ODRhZTM0LTU5ZDYtNDQ1NC1iOThlLTgyMTUxOGJjYzNhNyIsImNvZ25pdG86cm9sZXMiOlsiYXJuOmF3czppYW06Ojg5ODY3MDIzMjgwNzpyb2xlXC9jb250ZW50b2gtZGV2LXVzLWVhc3QtMS1sYW1iZGFSb2xlIl0sImF1ZCI6IjVhYzh0cGdzNmdic3ExM2ZydnJwaWVlcDQwIiwiZXZlbnRfaWQiOiI2YmI0NzExMi03ZTNiLTRjYzUtYmVhZS02MzMxZjEwYjk3MzIiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY2NTYxNjI0MSwibmFtZSI6IkNhZGVuYSBJc21hZWwiLCJwaG9uZV9udW1iZXIiOiIrNTIzMTExMzY2MzM2IiwiZXhwIjoxNjY1NjE5ODQxLCJpYXQiOjE2NjU2MTYyNDEsImVtYWlsIjoiY2FkZW5hLmlzbWFlbEBhbGxmcmVlbWFpbC5uZXQifQ.gi1Jiua_O175vHLy-CYXOR945IRcObIj5j1LNk4_EhcKPz-MzPnfWDLH7L3sTiNS-VUhIRtAhtUVPUSYv0oP1qfJwFHomerxJvYgJge8SLWPjL6yGBnTxAvHVbuLU8kcaoZup2eNMV6XOIAEBAHeCDm4vW0rYWwfrKADPyYGZQF2si14o3wtgSMX5a4ccxGwikT3to3HttWBhmJs_I1Xr_BvBxePc4WghjQr5GVGbq8vhr4HwdkTmlcJAnQsc_fmIdbJ_ACyTa1wr343KYYOQVwBjAmZDa6rU16y0yTr_J4IVWY3aS5UpBEBHy4XE0c76UaN-_DcGiVl4ayWQIUz8A",
111
+ id: 59,
112
+ companyId: 817,
111
113
  isUserTech: false,
112
114
  },
113
115
  },
114
116
  };
115
117
 
116
118
  // ejemplo del chat ticket con user TECH
117
- export const chatTECH_ticketClosed_user65 = Template.bind({});
118
- chatTECH_ticketClosed_user65.args = {
119
- chatType: "ticket",
120
- chatContainerType: "fixed",
121
- chatData: {
122
- id: 10,
123
- ticketOwnerUserId: 23,
124
- statusTicket: "COMPLETED",
125
- currentUser: {
126
- id: 65,
127
- companyId: 2,
128
- isUserTech: true,
129
- },
130
- },
131
- };
132
-
133
- // ejemplo del chat ticket con user TECH propietario del ticket
134
- export const chatTECH_ticketClosedOwn_user66 = Template.bind({});
135
- chatTECH_ticketClosedOwn_user66.args = {
119
+ export const chatTicket_userTECH = Template.bind({});
120
+ chatTicket_userTECH.args = {
136
121
  chatType: "ticket",
137
122
  chatContainerType: "fixed",
138
123
  chatData: {
139
124
  id: 10,
140
- ticketOwnerUserId: 66,
141
- statusTicket: "COMPLETED",
142
- currentUser: {
143
- id: 66,
144
- companyId: 2,
145
- isUserTech: true,
146
- },
147
- },
148
- };
149
-
150
- // ejemplo del chat ticket con user FAB
151
- export const chatFAB_ticketOpen_user49 = Template.bind({});
152
- chatFAB_ticketOpen_user49.args = {
153
- chatType: "ticket",
154
- chatContainerType: "fixed",
155
- chatData: {
156
- id: 11,
157
- ticketOwnerUserId: 23,
158
- statusTicket: "PENDING",
159
- currentUser: {
160
- id: 49,
161
- companyId: 2,
162
- isUserTech: false,
163
- },
164
- },
165
- };
166
-
167
- // ejemplo del chat ticket con user TECH
168
- export const chatTECH_ticketOpen_user65 = Template.bind({});
169
- chatTECH_ticketOpen_user65.args = {
170
- chatType: "ticket",
171
- chatContainerType: "fixed",
172
- chatData: {
173
- id: 11,
174
- ticketOwnerUserId: 23,
175
- statusTicket: "PENDING",
176
- currentUser: {
177
- id: 65,
178
- companyId: 2,
179
- isUserTech: true,
180
- },
181
- },
182
- };
183
-
184
- // ejemplo del chat ticket con user TECH propietario del ticket
185
- export const chatTECH_ticketOpenOwn_user66 = Template.bind({});
186
- chatTECH_ticketOpenOwn_user66.args = {
187
- chatType: "ticket",
188
- chatContainerType: "fixed",
189
- chatData: {
190
- id: 11,
191
- ticketOwnerUserId: 66,
192
- statusTicket: "PENDING",
125
+ ticketOwnerUserId: 49,
126
+ statusTicket: "IN_PROGRESS",
193
127
  currentUser: {
194
- id: 66,
195
- companyId: 2,
128
+ token:
129
+ "eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJmNTkyN2Y4ZS1jYmY3LTQ5MjItOWUwOS1lNjllYzBiMjczMWEiLCJjb2duaXRvOmdyb3VwcyI6WyJ1c3VhcmlvX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfWE1aUWRxa0dqIiwicGhvbmVfbnVtYmVyX3ZlcmlmaWVkIjpmYWxzZSwiY29nbml0bzp1c2VybmFtZSI6ImY1OTI3ZjhlLWNiZjctNDkyMi05ZTA5LWU2OWVjMGIyNzMxYSIsImNvZ25pdG86cm9sZXMiOlsiYXJuOmF3czppYW06Ojg5ODY3MDIzMjgwNzpyb2xlXC9jb250ZW50b2gtZGV2LXVzLWVhc3QtMS1sYW1iZGFSb2xlIl0sImF1ZCI6IjVhYzh0cGdzNmdic3ExM2ZydnJwaWVlcDQwIiwiZXZlbnRfaWQiOiI5M2FkOTM5Yy04MzJjLTQ4NWItOWUzMS0yN2MxNzBjMDk1NWEiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY2OTY2MjU5MiwibmFtZSI6IklzbWFlbCBMb3BleiIsInBob25lX251bWJlciI6Iis1MjMxMTEzNjYzMzYiLCJleHAiOjE2Njk2NjYxOTIsImlhdCI6MTY2OTY2MjU5MiwiZW1haWwiOiJpbG9wZXpAY29udGVudG9oLmNvbSJ9.hhdlQk-ljHpyZPRoG02YcvPow8jpm9coZfmEuZ29vIVX7bX5k05Ss3FkaT0dYNr2qEvqZHHqH61oJvx4xr2i6z2c3xEZxyJZFR-Cc_skhH0UwGXbCH9up5PW1aipY5rL45E42R7GKSGmB5Z-B7vxe2NcL-ZojYZkXNZ7Gx_lM8Vpq-XsFLJ4nCJlH7vx9D4SkREN3lLfYIIgqNrxJ_wqfqvcqexwRJfnr76ZqCuDR4dTWsES2Lf5D8Wa_wkQAjQNdzP7ai28l9fRyCSwkTxvamdJkx7p-tssOL5pAnCsKkD22UN-09c1bhuGrgfKWUV4awbptfjvHS7TSq0bWiv4gQ",
130
+ id: 28,
131
+ companyId: 1,
196
132
  isUserTech: true,
197
133
  },
198
134
  },
@@ -22,6 +22,7 @@ import { Tooltip } from "../../../atoms/Tooltip";
22
22
  import { Slide, Zoom } from "@mui/material";
23
23
  import { useRef } from "react";
24
24
  import { ImagePreview } from "../../../atoms/ImagePreview";
25
+ import { isUserTech } from "../../../../global-files/handle_userTech";
25
26
 
26
27
  export const ContainerItems = (props) => {
27
28
  const {
@@ -473,11 +474,11 @@ export const ContainerItems = (props) => {
473
474
  let ownMessage = false;
474
475
  // user tech
475
476
  if (currentUser.isUserTech) {
476
- if (users[item.userId].isUserTech) ownMessage = true;
477
+ if (isUserTech(users[item.userId].isUserTech)) ownMessage = true;
477
478
  }
478
479
  // user normal
479
480
  else {
480
- if (!users[item.userId].isUserTech) {
481
+ if (!isUserTech(users[item.userId].isUserTech)) {
481
482
  if (currentUser.companyId == users[item.userId].companyId) {
482
483
  ownMessage = true;
483
484
  }
@@ -15,7 +15,11 @@ import { ChatLists } from "../ChatLists";
15
15
  import { CustomIcon } from "../../../atoms/CustomIcon";
16
16
  import { fetchGET, fetchPOST } from "../../../../global-files/handle_http";
17
17
  import { Modal } from "../../Modal";
18
- import { isStringEmpty } from "../../../../global-files/utils";
18
+ import {
19
+ encodeUriJson,
20
+ isStringEmpty,
21
+ isValidNaturalNumber,
22
+ } from "../../../../global-files/utils";
19
23
 
20
24
  export const ContentChat = (props) => {
21
25
  const {
@@ -93,14 +97,14 @@ export const ContentChat = (props) => {
93
97
  }
94
98
  }, [dataChat]);
95
99
 
96
- // comenzar temporizador del update de 30s
100
+ // comenzar temporizador del update de 20s
97
101
  useEffect(() => {
98
102
  //return; -- descomentarizar para hacer pruebas sin update
99
103
  if (startUpdate == 0) return;
100
- console.log(`START UPDATE en 30s`);
104
+ console.log(`START UPDATE en 20s`);
101
105
  const processID = setTimeout(() => {
102
106
  setRunUpdate((prev) => prev + 1);
103
- }, 30000);
107
+ }, 20000);
104
108
  setProcessUpdateID(processID);
105
109
  }, [startUpdate]);
106
110
 
@@ -224,18 +228,33 @@ export const ContentChat = (props) => {
224
228
  };
225
229
 
226
230
  const getInitialTicket = async () => {
227
- console.log("======== INITIAL chat =======");
231
+ console.log("\n======== INITIAL chat =======");
228
232
  stopUpdate(); // finalizamos el temporizador
229
- const paramsQuery = {
233
+ const dataUser = {
234
+ id: dataChat.currentUser?.id,
235
+ companyId: dataChat.currentUser?.companyId,
236
+ isUserTech: dataChat.currentUser?.isUserTech,
237
+ };
238
+ /*
239
+ console.log("values send query:", {
240
+ id: dataChat.id,
230
241
  getType: "initial",
242
+ currentUser: dataUser,
243
+ currentItemsFront: getItemsIdSingleChat(),
244
+ });
245
+ */
246
+ const paramsQuery = {
231
247
  id: JSON.stringify(dataChat.id),
232
- isUserTech: JSON.stringify(dataChat.currentUser.isUserTech),
248
+ getType: "initial",
249
+ currentUser: encodeUriJson(dataUser),
250
+ currentItemsFront: encodeUriJson(getItemsIdSingleChat()),
233
251
  };
234
252
  const response = await fetchGET(
235
253
  process.env.REACT_APP_TICKETS_CHAT_ENDPOINT,
236
- paramsQuery
254
+ paramsQuery,
255
+ { Authorization: dataChat.currentUser?.token }
237
256
  );
238
- // programar update en 30s
257
+ // programar update en 20s
239
258
  setStartUpdate((prev) => prev + 1);
240
259
  if (!response.body) {
241
260
  setErrorChat({
@@ -248,7 +267,7 @@ export const ContentChat = (props) => {
248
267
  return;
249
268
  }
250
269
  // success
251
- console.log(response.body);
270
+ console.log("response initial:", response.body);
252
271
  setLastUpdateDate(response.body.data.lastUpdateDate);
253
272
  setAllUsers(response.body.users);
254
273
  setSingleChat({
@@ -336,20 +355,27 @@ export const ContentChat = (props) => {
336
355
 
337
356
  // este GET obtiene la lista de compañoas con las que se puede chatear
338
357
  const getLoadMoreTicket = async () => {
339
- console.log("======== LOAD MORE chat =======");
358
+ console.log("\n======== LOAD MORE chat =======");
340
359
  stopUpdate(); // finalizamos el temporizador
341
360
  let date = singleChat.items[singleChat.items.length - 1].date;
361
+ const dataUser = {
362
+ id: dataChat.currentUser?.id,
363
+ companyId: dataChat.currentUser?.companyId,
364
+ isUserTech: dataChat.currentUser?.isUserTech,
365
+ };
342
366
  const paramsQuery = {
343
- getType: "loadMore",
344
367
  id: JSON.stringify(dataChat.id),
368
+ getType: "loadMore",
345
369
  date: encodeURIComponent(date),
346
- isUserTech: JSON.stringify(dataChat.currentUser.isUserTech),
370
+ currentUser: encodeUriJson(dataUser),
371
+ currentItemsFront: encodeUriJson(getItemsIdSingleChat()),
347
372
  };
348
373
  const response = await fetchGET(
349
374
  process.env.REACT_APP_TICKETS_CHAT_ENDPOINT,
350
- paramsQuery
375
+ paramsQuery,
376
+ { Authorization: dataChat.currentUser?.token }
351
377
  );
352
- //programar update en 30s
378
+ //programar update en 20s
353
379
  setStartUpdate((prev) => prev + 1);
354
380
  if (!response.body) {
355
381
  return {
@@ -358,7 +384,7 @@ export const ContentChat = (props) => {
358
384
  };
359
385
  }
360
386
  // success
361
- console.log(response.body);
387
+ console.log("response loadMore:", response.body);
362
388
  // actualizar la lista de los users
363
389
  updateAllUsers(response.body.users);
364
390
  // actualizar los items del chat
@@ -491,19 +517,35 @@ export const ContentChat = (props) => {
491
517
  };
492
518
 
493
519
  const getUpdateLatestTicket = async () => {
494
- console.log("======== UPDATE chat =======");
520
+ console.log("\n======== UPDATE chat =======");
495
521
  console.log("lastUpdate:", lastUpdateDate);
496
- const paramsQuery = {
522
+ const dataUser = {
523
+ id: dataChat.currentUser?.id,
524
+ companyId: dataChat.currentUser?.companyId,
525
+ isUserTech: dataChat.currentUser?.isUserTech,
526
+ };
527
+ /*
528
+ console.log("values send query:", {
529
+ id: dataChat.id,
497
530
  getType: "updateLatest",
531
+ date: lastUpdateDate,
532
+ currentUser: dataUser,
533
+ currentItemsFront: getItemsIdSingleChat(),
534
+ });
535
+ */
536
+ const paramsQuery = {
498
537
  id: JSON.stringify(dataChat.id),
538
+ getType: "updateLatest",
499
539
  date: encodeURIComponent(lastUpdateDate),
500
- isUserTech: JSON.stringify(dataChat.currentUser.isUserTech),
540
+ currentUser: encodeUriJson(dataUser),
541
+ currentItemsFront: encodeUriJson(getItemsIdSingleChat()),
501
542
  };
502
543
  const response = await fetchGET(
503
544
  process.env.REACT_APP_TICKETS_CHAT_ENDPOINT,
504
- paramsQuery
545
+ paramsQuery,
546
+ { Authorization: dataChat.currentUser?.token }
505
547
  );
506
- //programar update en 30s
548
+ //programar update en 20s
507
549
  setStartUpdate((prev) => prev + 1);
508
550
  if (!response.body) {
509
551
  if (errorUpdate.startDate) {
@@ -527,7 +569,7 @@ export const ContentChat = (props) => {
527
569
  setErrorUpdate({});
528
570
  }
529
571
  // success
530
- console.log(response.body);
572
+ //console.log("response update:", response.body);
531
573
  setLastUpdateDate(response.body.data.lastUpdateDate);
532
574
  // actualizar la lista de los users
533
575
  updateAllUsers(response.body.users);
@@ -677,6 +719,16 @@ export const ContentChat = (props) => {
677
719
  else return false;
678
720
  };
679
721
 
722
+ const getItemsIdSingleChat = () => {
723
+ const itemsId = {};
724
+ if (Array.isArray(singleChat.items)) {
725
+ singleChat.items.forEach((item) => {
726
+ if (isValidNaturalNumber(item.id)) itemsId[item.id] = true;
727
+ });
728
+ }
729
+ return itemsId;
730
+ };
731
+
680
732
  const getChatCompany = () => {
681
733
  if (chatType === "merchant_product" || chatType === "ticket") {
682
734
  return undefined;
@@ -114,6 +114,7 @@ export const Chat = (props) => {
114
114
  const validateChatTicket = () => {
115
115
  const {
116
116
  currentUser /* {
117
+ token, // string
117
118
  id: number ,
118
119
  companyId: number ,
119
120
  isUserTech: boolean ,
@@ -123,6 +124,11 @@ export const Chat = (props) => {
123
124
  ticketOwnerUserId, // number
124
125
  } = chatData;
125
126
 
127
+ // validar el token del usuario conectado
128
+ if (isStringEmpty(currentUser?.token)) {
129
+ setDataError("Tu identificación de usuario no fue especificado");
130
+ return;
131
+ }
126
132
  // validar si ID del usuario conectado
127
133
  if (!isValidNaturalNumber(currentUser?.id)) {
128
134
  setDataError("Tu ID de usuario no fue especificado");
@@ -134,10 +140,7 @@ export const Chat = (props) => {
134
140
  return;
135
141
  }
136
142
  // validar si el usuario conectado es de tecnologia o no
137
- if (
138
- currentUser?.isUserTech === undefined ||
139
- typeof currentUser.isUserTech !== "boolean"
140
- ) {
143
+ if (![false, true].includes(currentUser?.isUserTech)) {
141
144
  setDataError("Tu tipo de usuario no fue especificado");
142
145
  return;
143
146
  }
@@ -154,7 +157,7 @@ export const Chat = (props) => {
154
157
  return;
155
158
  }
156
159
  // validar el status del chat
157
- if (isStringEmpty(statusTicket)) {
160
+ if (!["IN_PROGRESS", "PENDING", "COMPLETED"].includes(statusTicket)) {
158
161
  setDataError("El estatus del ticket no es valido");
159
162
  return;
160
163
  }
@@ -184,66 +187,6 @@ export const Chat = (props) => {
184
187
  });
185
188
  };
186
189
 
187
- /*
188
- const createItem = async (valueType, valueInput) => {
189
- clearTimeout(processUpdateID);
190
- let currentItems = items.slice();
191
- let paramsBody = {};
192
- let paramsHeaders = {};
193
- switch (chatType.toLowerCase()) {
194
- case "order_product": //------------------------------------------
195
- paramsBody = {
196
- articleId: articleId,
197
- valueType: valueType,
198
- value: valueInput,
199
- isOrderProduct: "1",
200
- orderId: orderId,
201
- retailerId: retailerId,
202
- };
203
- paramsHeaders = { Authorization: userToken };
204
- break;
205
-
206
- default:
207
- // merchants_products--------------------------------------
208
- paramsBody = {
209
- articleId: articleId,
210
- articleVersion: articleVersion,
211
- valueType: valueType,
212
- value: valueInput,
213
- isOrderProduct: "0",
214
- };
215
- paramsHeaders = { Authorization: userToken };
216
- }
217
- const response = await fetchPOST(
218
- process.env.REACT_APP_PRODUCTS_CHAT_ENDPOINT,
219
- paramsBody,
220
- paramsHeaders
221
- );
222
- if (!response.body) {
223
- let itemType =
224
- valueType === "txt"
225
- ? "el mensaje"
226
- : valueType === "img"
227
- ? "la imagen"
228
- : "el archivo";
229
- showModalAlert(
230
- `No fue posible agregar ${itemType} en el chat`,
231
- response.errorDetail,
232
- "error"
233
- );
234
- setItems(currentItems);
235
- } else {
236
- if (currentItems?.length == 0) {
237
- // console.log("NUEVO ITEM <> NUEVO INITIAL");
238
- await getInitial();
239
- } else {
240
- // console.log("NUEVO ITEM <> NUEVO UPDATE");
241
- await getUpdate();
242
- }
243
- }
244
- };
245
- */
246
-
247
190
  return (
248
191
  <>
249
192
  {chatContainerType?.toLowerCase() === "fixed" ? (
@@ -0,0 +1,7 @@
1
+ export const isUserTech = (value = "") => {
2
+ return ["AS", "ADMIN-AS", "ADMIN"].includes(value);
3
+ };
4
+
5
+ export const isUserAdminTech = (value = "") => {
6
+ return ["ADMIN-AS", "ADMIN"].includes(value);
7
+ };
@@ -307,3 +307,16 @@ export const isObject = (obj) => {
307
307
  if (obj && typeof obj === "object" && !Array.isArray(obj)) return true;
308
308
  return false;
309
309
  };
310
+
311
+ /*------------------------
312
+ recibe un value y lo codifica
313
+ primero a JSON y luego a URI
314
+ --------------------------*/
315
+ export const encodeUriJson = (value) => {
316
+ try {
317
+ const encodeValue = encodeURIComponent(JSON.stringify(value));
318
+ return encodeValue;
319
+ } catch (err) {
320
+ return undefined;
321
+ }
322
+ };