easemob-chat-uikit 1.0.0 → 1.0.1

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/ChatUI.esm.js CHANGED
@@ -19159,22 +19159,18 @@ const SvgImg = (props) => /* @__PURE__ */ React$6.createElement("svg", {
19159
19159
  width: "1em",
19160
19160
  height: "1em",
19161
19161
  viewBox: "0 0 24 24",
19162
- fill: "none",
19163
19162
  xmlns: "http://www.w3.org/2000/svg",
19164
19163
  ...props
19165
19164
  }, /* @__PURE__ */ React$6.createElement("path", {
19166
19165
  fillRule: "evenodd",
19167
19166
  clipRule: "evenodd",
19168
- d: "M18.5 6.5H5.5C5.22386 6.5 5 6.72386 5 7V17C5 17.2761 5.22386 17.5 5.5 17.5H18.5C18.7761 17.5 19 17.2761 19 17V7C19 6.72386 18.7761 6.5 18.5 6.5ZM5.5 5C4.39543 5 3.5 5.89543 3.5 7V17C3.5 18.1046 4.39543 19 5.5 19H18.5C19.6046 19 20.5 18.1046 20.5 17V7C20.5 5.89543 19.6046 5 18.5 5H5.5Z",
19169
- fill: "#464E53"
19167
+ d: "M18.5 6.5H5.5C5.22386 6.5 5 6.72386 5 7V17C5 17.2761 5.22386 17.5 5.5 17.5H18.5C18.7761 17.5 19 17.2761 19 17V7C19 6.72386 18.7761 6.5 18.5 6.5ZM5.5 5C4.39543 5 3.5 5.89543 3.5 7V17C3.5 18.1046 4.39543 19 5.5 19H18.5C19.6046 19 20.5 18.1046 20.5 17V7C20.5 5.89543 19.6046 5 18.5 5H5.5Z"
19170
19168
  }), /* @__PURE__ */ React$6.createElement("path", {
19171
- d: "M12.692 11.907L6.78174 17.6209H19.0786V15.5129L15.4963 11.9306C14.7246 11.1589 13.4766 11.1484 12.692 11.907Z",
19172
- fill: "#464E53"
19169
+ d: "M12.692 11.907L6.78174 17.6209H19.0786V15.5129L15.4963 11.9306C14.7246 11.1589 13.4766 11.1484 12.692 11.907Z"
19173
19170
  }), /* @__PURE__ */ React$6.createElement("circle", {
19174
19171
  cx: 8.5,
19175
19172
  cy: 9.5,
19176
- r: 1.5,
19177
- fill: "#464E53"
19173
+ r: 1.5
19178
19174
  }));
19179
19175
  const SvgArrowTurnLeft = (props) => /* @__PURE__ */ React$6.createElement("svg", {
19180
19176
  width: "1em",
@@ -19346,12 +19342,10 @@ const SvgPersonSingleFill = (props) => /* @__PURE__ */ React$6.createElement("sv
19346
19342
  width: "1em",
19347
19343
  height: "1em",
19348
19344
  viewBox: "0 0 24 24",
19349
- fill: "none",
19350
19345
  xmlns: "http://www.w3.org/2000/svg",
19351
19346
  ...props
19352
19347
  }, /* @__PURE__ */ React$6.createElement("path", {
19353
- d: "M12 4C11.4318 4 10.9088 4.15338 10.431 4.46013C9.95315 4.75294 9.5722 5.1573 9.2881 5.6732C9.01691 6.18911 8.88132 6.75381 8.88132 7.36732V9.39608C8.88132 9.99564 9.01691 10.5534 9.2881 11.0693C9.5722 11.5852 9.95315 11.9965 10.431 12.3033C10.9088 12.61 11.4318 12.7634 12 12.7634C12.5682 12.7634 13.0912 12.61 13.569 12.3033C14.0468 11.9965 14.4213 11.5852 14.6925 11.0693C14.9766 10.5534 15.1186 9.99564 15.1186 9.39608V7.36732C15.1186 6.75381 14.9766 6.18911 14.6925 5.6732C14.4213 5.1573 14.0468 4.75294 13.569 4.46013C13.0912 4.15338 12.5682 4 12 4ZM12 20H6.76994C6.31796 20 5.93055 19.8257 5.60771 19.4771C5.29779 19.1285 5.14282 18.7172 5.14282 18.2431C5.14282 17.7691 5.2203 17.3856 5.37527 17.0928C5.64645 16.6187 6.03386 16.1795 6.5375 15.7752C7.14444 15.2732 7.86114 14.8828 8.68762 14.6039C9.66905 14.2693 10.7732 14.102 12 14.102C13.2268 14.102 14.3309 14.2693 15.3123 14.6039C16.1388 14.8828 16.8555 15.2732 17.4624 15.7752C17.9661 16.1795 18.3535 16.6187 18.6247 17.0928C18.7796 17.3856 18.8571 17.7691 18.8571 18.2431C18.8571 18.7172 18.6957 19.1285 18.3728 19.4771C18.0629 19.8257 17.682 20 17.23 20H12Z",
19354
- fill: "#464E53"
19348
+ d: "M12 4C11.4318 4 10.9088 4.15338 10.431 4.46013C9.95315 4.75294 9.5722 5.1573 9.2881 5.6732C9.01691 6.18911 8.88132 6.75381 8.88132 7.36732V9.39608C8.88132 9.99564 9.01691 10.5534 9.2881 11.0693C9.5722 11.5852 9.95315 11.9965 10.431 12.3033C10.9088 12.61 11.4318 12.7634 12 12.7634C12.5682 12.7634 13.0912 12.61 13.569 12.3033C14.0468 11.9965 14.4213 11.5852 14.6925 11.0693C14.9766 10.5534 15.1186 9.99564 15.1186 9.39608V7.36732C15.1186 6.75381 14.9766 6.18911 14.6925 5.6732C14.4213 5.1573 14.0468 4.75294 13.569 4.46013C13.0912 4.15338 12.5682 4 12 4ZM12 20H6.76994C6.31796 20 5.93055 19.8257 5.60771 19.4771C5.29779 19.1285 5.14282 18.7172 5.14282 18.2431C5.14282 17.7691 5.2203 17.3856 5.37527 17.0928C5.64645 16.6187 6.03386 16.1795 6.5375 15.7752C7.14444 15.2732 7.86114 14.8828 8.68762 14.6039C9.66905 14.2693 10.7732 14.102 12 14.102C13.2268 14.102 14.3309 14.2693 15.3123 14.6039C16.1388 14.8828 16.8555 15.2732 17.4624 15.7752C17.9661 16.1795 18.3535 16.6187 18.6247 17.0928C18.7796 17.3856 18.8571 17.7691 18.8571 18.2431C18.8571 18.7172 18.6957 19.1285 18.3728 19.4771C18.0629 19.8257 17.682 20 17.23 20H12Z"
19355
19349
  }));
19356
19350
  const SvgHashtagInBubble = (props) => /* @__PURE__ */ React$6.createElement("svg", {
19357
19351
  width: "1em",
@@ -19999,6 +19993,30 @@ const SvgRoundArrowThick = (props) => /* @__PURE__ */ React$6.createElement("svg
19999
19993
  clipRule: "evenodd",
20000
19994
  d: "M3.96953 4.93916C1.17122 8.27406 1.60621 13.246 4.9411 16.0443C8.12357 18.7147 12.7971 18.4406 15.6493 15.5117C15.7942 15.363 15.7808 15.1139 15.6067 14.9677C15.4389 14.8269 15.176 14.8426 15.0053 15.0133C12.4397 17.5795 8.29268 17.8012 5.46077 15.425C2.46792 12.9137 2.07755 8.45169 4.58885 5.45883C7.0567 2.51776 11.4083 2.0899 14.3983 4.45916L14.9182 3.83962C11.5859 1.18349 6.7244 1.65604 3.96953 4.93916ZM4.68127 16.354C1.17535 13.4122 0.718059 8.18524 3.65987 4.67933C6.60168 1.17342 11.8286 0.716122 15.3345 3.65793L15.4893 3.78785L14.45 5.02649L14.2952 4.89657C11.4733 2.52877 7.2663 2.89684 4.89851 5.71867C2.53071 8.5405 2.89878 12.7475 5.72061 15.1153C8.39053 17.3557 12.3008 17.1468 14.7194 14.7275C15.0223 14.4246 15.5212 14.3684 15.8665 14.6581C16.2054 14.9424 16.2614 15.4627 15.9389 15.7938C12.9401 18.8731 8.02709 19.1614 4.68127 16.354Z"
20001
19995
  }));
19996
+ const SvgTriangleInRectangle = (props) => /* @__PURE__ */ React$6.createElement("svg", {
19997
+ width: "1em",
19998
+ height: "1em",
19999
+ viewBox: "0 0 24 24",
20000
+ xmlns: "http://www.w3.org/2000/svg",
20001
+ ...props
20002
+ }, /* @__PURE__ */ React$6.createElement("path", {
20003
+ fillRule: "evenodd",
20004
+ clipRule: "evenodd",
20005
+ d: "M18.5 6.5H5.5C5.22386 6.5 5 6.72386 5 7V17C5 17.2761 5.22386 17.5 5.5 17.5H18.5C18.7761 17.5 19 17.2761 19 17V7C19 6.72386 18.7761 6.5 18.5 6.5ZM5.5 5C4.39543 5 3.5 5.89543 3.5 7V17C3.5 18.1046 4.39543 19 5.5 19H18.5C19.6046 19 20.5 18.1046 20.5 17V7C20.5 5.89543 19.6046 5 18.5 5H5.5Z"
20006
+ }), /* @__PURE__ */ React$6.createElement("path", {
20007
+ d: "M9.5 15.0184V8.98159C9.5 8.61236 9.8833 8.38088 10.1914 8.56407L15.2672 11.5825C15.5776 11.7671 15.5776 12.2329 15.2672 12.4175L10.1914 15.4359C9.8833 15.6191 9.5 15.3876 9.5 15.0184Z"
20008
+ }));
20009
+ const SvgFolder = (props) => /* @__PURE__ */ React$6.createElement("svg", {
20010
+ xmlns: "http://www.w3.org/2000/svg",
20011
+ width: "1em",
20012
+ height: "1em",
20013
+ viewBox: "0 0 18 18",
20014
+ ...props
20015
+ }, /* @__PURE__ */ React$6.createElement("path", {
20016
+ fillRule: "evenodd",
20017
+ clipRule: "evenodd",
20018
+ d: "M3.25 3C2.69772 3 2.25 3.44772 2.25 4V13.5C2.25 14.3284 2.92157 15 3.75 15L14.25 15C15.0784 15 15.75 14.3284 15.75 13.5V6C15.75 5.17157 15.0784 4.5 14.25 4.5L7.95235 4.5C7.56874 4.5 7.21893 4.28056 7.052 3.93517L6.873 3.56483C6.70607 3.21945 6.35626 3 5.97265 3H3.25ZM4.185 6.75C3.94476 6.75 3.75 6.94476 3.75 7.185C3.75 7.42524 3.94476 7.62 4.185 7.62H13.815C14.0552 7.62 14.25 7.42524 14.25 7.185C14.25 6.94476 14.0552 6.75 13.815 6.75H4.185Z"
20019
+ }));
20002
20020
  const getIconNode = (type) => {
20003
20021
  switch (type) {
20004
20022
  case "SHUT_DOWN":
@@ -20151,6 +20169,10 @@ const getIconNode = (type) => {
20151
20169
  return /* @__PURE__ */ React__default$1.createElement(SvgSpkeakerNVerticalBar, null);
20152
20170
  case "ROUND_ARROW_THICK":
20153
20171
  return /* @__PURE__ */ React__default$1.createElement(SvgRoundArrowThick, null);
20172
+ case "TRIANGLE_IN_RECTANGLE":
20173
+ return /* @__PURE__ */ React__default$1.createElement(SvgTriangleInRectangle, null);
20174
+ case "FOLDER":
20175
+ return /* @__PURE__ */ React__default$1.createElement(SvgFolder, null);
20154
20176
  default:
20155
20177
  return "";
20156
20178
  }
@@ -20375,8 +20397,7 @@ class MessageStore {
20375
20397
  };
20376
20398
  this.selectedMessage = {
20377
20399
  singleChat: {},
20378
- groupChat: {},
20379
- chatRoom: {}
20400
+ groupChat: {}
20380
20401
  };
20381
20402
  this.currentCVS = {};
20382
20403
  this.repliedMessage = null;
@@ -20538,7 +20559,7 @@ class MessageStore {
20538
20559
  }
20539
20560
  }
20540
20561
  }
20541
- const msg = this.message.byId[message2.id];
20562
+ const msg = this.message.byId[message2.id] || {};
20542
20563
  msg.status = "sent";
20543
20564
  msg.mid = data2.serverMsgId;
20544
20565
  if (message2.type == "combine") {
@@ -20553,7 +20574,7 @@ class MessageStore {
20553
20574
  if (message2.url) {
20554
20575
  msg.url = message2.url;
20555
20576
  if (msg && msg.file) {
20556
- msg.file.url = message2.url;
20577
+ msg.file.url = message2.url || "";
20557
20578
  }
20558
20579
  }
20559
20580
  this.message.byId[data2.serverMsgId] = this.message.byId[message2.id];
@@ -20582,7 +20603,6 @@ class MessageStore {
20582
20603
  this.rootStore.conversationStore.modifyConversation({ ...cvs });
20583
20604
  eventHandler.dispatchSuccess("sendMessage");
20584
20605
  }).catch((error2) => {
20585
- console.warn("send fail", error2);
20586
20606
  this.updateMessageStatus(message2.id, "failed");
20587
20607
  eventHandler.dispatchError("sendMessage", error2);
20588
20608
  });
@@ -20876,7 +20896,10 @@ class MessageStore {
20876
20896
  if (reaction2) {
20877
20897
  reaction2.count -= 1;
20878
20898
  if (reaction2.count <= 0) {
20879
- (_b = message2.reactions) == null ? void 0 : _b.splice((_a3 = message2.reactions) == null ? void 0 : _a3.indexOf(reaction2), 1);
20899
+ (_b = message2.reactions) == null ? void 0 : _b.splice(
20900
+ (_a3 = message2.reactions) == null ? void 0 : _a3.indexOf(reaction2),
20901
+ 1
20902
+ );
20880
20903
  }
20881
20904
  const index2 = (_c = reaction2.userList) == null ? void 0 : _c.indexOf(this.rootStore.client.user);
20882
20905
  if (index2 > -1) {
@@ -21057,6 +21080,18 @@ class MessageStore {
21057
21080
  shiftBroadcastMessage() {
21058
21081
  this.message.broadcast.shift();
21059
21082
  }
21083
+ sendReadAck(messageId, to) {
21084
+ if (!messageId || !to) {
21085
+ return console.error(`Invalid parameter, messageId: ${messageId}, to: ${to}`);
21086
+ }
21087
+ const readMsg = chatSDK.message.create({
21088
+ type: "read",
21089
+ chatType: "singleChat",
21090
+ to,
21091
+ id: messageId
21092
+ });
21093
+ this.rootStore.client.send(readMsg);
21094
+ }
21060
21095
  clear() {
21061
21096
  this.message = {
21062
21097
  singleChat: {},
@@ -47361,7 +47396,10 @@ class ThreadStore {
47361
47396
  originalMessage: {}
47362
47397
  });
47363
47398
  this.setThreadVisible(false);
47364
- (_e = this.threadList[parentId]) == null ? void 0 : _e.splice((_d = this.threadList[parentId]) == null ? void 0 : _d.indexOf(foundThread), 1);
47399
+ (_e = this.threadList[parentId]) == null ? void 0 : _e.splice(
47400
+ (_d = this.threadList[parentId]) == null ? void 0 : _d.indexOf(foundThread),
47401
+ 1
47402
+ );
47365
47403
  }
47366
47404
  break;
47367
47405
  }
@@ -47465,20 +47503,21 @@ class ThreadStore {
47465
47503
  pageSize: 20,
47466
47504
  cursor
47467
47505
  }).then((res) => {
47468
- const threads = res.entities;
47506
+ const threads = res.entities || [];
47469
47507
  let list2 = this.threadList[parentId] || [];
47470
47508
  if (!cursor) {
47471
47509
  list2 = [];
47472
47510
  }
47473
- const chatThreadIds = threads.map((item) => {
47511
+ const chatThreadIds = threads == null ? void 0 : threads.map((item) => {
47474
47512
  return item.id;
47475
47513
  });
47476
47514
  eventHandler.dispatchSuccess("getChatThreads");
47477
47515
  return this.rootStore.client.getChatThreadLastMessage({
47478
47516
  chatThreadIds
47479
47517
  }).then((data2) => {
47480
- data2.entities.forEach((item) => {
47481
- let idx = threads.findIndex((thread2) => item.chatThreadId === thread2.id);
47518
+ var _a3;
47519
+ (_a3 = data2.entities) == null ? void 0 : _a3.forEach((item) => {
47520
+ let idx = threads == null ? void 0 : threads.findIndex((thread2) => item.chatThreadId === thread2.id);
47482
47521
  item.lastMessage.chatType = "groupChat";
47483
47522
  threads[idx].lastMessage = item.lastMessage;
47484
47523
  });
@@ -82956,7 +82995,7 @@ const TextMessage = (props) => {
82956
82995
  className: modifyPrefix,
82957
82996
  ref: textareaRef,
82958
82997
  enableEnterSend: false,
82959
- enabledMenton: false
82998
+ enabledMention: false
82960
82999
  }))));
82961
83000
  };
82962
83001
  const TextMessage$1 = observer(TextMessage);
@@ -83215,7 +83254,7 @@ let ImageMessage = (props) => {
83215
83254
  ...others
83216
83255
  } = props;
83217
83256
  let type = props.type;
83218
- let { bySelf, from, reactions } = message2;
83257
+ let { bySelf, from, reactions, status } = message2;
83219
83258
  const { getPrefixCls } = React__default$1.useContext(ConfigContext);
83220
83259
  const prefixCls = getPrefixCls("message-img", prefix2);
83221
83260
  const context = useContext(RootContext);
@@ -83439,6 +83478,7 @@ let ImageMessage = (props) => {
83439
83478
  onClickThreadTitle: handleClickThreadTitle,
83440
83479
  bubbleStyle: { background: "transparent", padding: 0 },
83441
83480
  shape,
83481
+ status,
83442
83482
  ...others
83443
83483
  }, /* @__PURE__ */ React__default$1.createElement("div", {
83444
83484
  className: classString,
@@ -83491,7 +83531,7 @@ const FileMessage = (props) => {
83491
83531
  thread: thread2,
83492
83532
  ...baseMsgProps
83493
83533
  } = props;
83494
- const { filename, file_length, from, reactions } = fileMessage;
83534
+ const { filename, file_length, from, reactions, status } = fileMessage;
83495
83535
  const { getPrefixCls } = React__default$1.useContext(ConfigContext);
83496
83536
  const prefixCls = getPrefixCls("message-file", customizePrefixCls);
83497
83537
  let { bySelf } = fileMessage;
@@ -83513,6 +83553,9 @@ const FileMessage = (props) => {
83513
83553
  return res.blob();
83514
83554
  }).then((blob) => {
83515
83555
  download(blob, filename);
83556
+ if (fileMessage.chatType == "singleChat" && fileMessage.from != rootStore.client.context.userId && fileMessage.status != "read" && !fileMessage.isChatThread && fileMessage.to == rootStore.client.context.userId) {
83557
+ rootStore.messageStore.sendReadAck(fileMessage.id, fileMessage.from || "");
83558
+ }
83516
83559
  }).catch((err) => {
83517
83560
  return false;
83518
83561
  });
@@ -83677,6 +83720,7 @@ const FileMessage = (props) => {
83677
83720
  thread: _thread,
83678
83721
  chatThreadOverview: fileMessage.chatThreadOverview,
83679
83722
  onClickThreadTitle: handleClickThreadTitle,
83723
+ status,
83680
83724
  ...baseMsgProps
83681
83725
  }, /* @__PURE__ */ React__default$1.createElement("div", {
83682
83726
  className: classString,
@@ -83709,7 +83753,7 @@ const UserCardMessage = (props) => {
83709
83753
  onUserIdCopied,
83710
83754
  ...others
83711
83755
  } = props;
83712
- let { bySelf, from, reactions } = message2;
83756
+ let { bySelf, from, reactions, status } = message2;
83713
83757
  const { conversationStore, addressStore } = rootStore;
83714
83758
  const { getPrefixCls } = React__default$1.useContext(ConfigContext);
83715
83759
  const prefixCls = getPrefixCls("message-card", prefix2);
@@ -83928,6 +83972,7 @@ const UserCardMessage = (props) => {
83928
83972
  chatThreadOverview: message2.chatThreadOverview,
83929
83973
  onClickThreadTitle: handleClickThreadTitle,
83930
83974
  bubbleStyle: { padding: "0" },
83975
+ status,
83931
83976
  ...others
83932
83977
  }, /* @__PURE__ */ React__default$1.createElement("div", {
83933
83978
  className: classString,
@@ -84002,8 +84047,7 @@ const VideoMessage = (props) => {
84002
84047
  videoProps,
84003
84048
  ...baseMsgProps
84004
84049
  } = props;
84005
- let { bySelf, from, reactions } = videoMessage;
84006
- console.log("videoMessage --->", videoMessage);
84050
+ let { bySelf, from, reactions, status } = videoMessage;
84007
84051
  const { getPrefixCls } = React__default$1.useContext(ConfigContext);
84008
84052
  const prefixCls = getPrefixCls("message-video", prefix2);
84009
84053
  const context = useContext(RootContext);
@@ -84158,6 +84202,12 @@ const VideoMessage = (props) => {
84158
84202
  rootStore.threadStore.setThreadVisible(true);
84159
84203
  rootStore.threadStore.getChatThreadDetail(((_b = videoMessage == null ? void 0 : videoMessage.chatThreadOverview) == null ? void 0 : _b.id) || "");
84160
84204
  };
84205
+ const handlePlayVideo = () => {
84206
+ if (videoMessage.chatType == "singleChat" && videoMessage.from != rootStore.client.context.userId && videoMessage.status != "read" && !videoMessage.isChatThread && videoMessage.to == rootStore.client.context.userId) {
84207
+ console.log("onPlay", videoMessage);
84208
+ rootStore.messageStore.sendReadAck(videoMessage.id, videoMessage.from || "");
84209
+ }
84210
+ };
84161
84211
  return /* @__PURE__ */ React__default$1.createElement(BaseMessage, {
84162
84212
  id: videoMessage.id,
84163
84213
  message: videoMessage,
@@ -84183,6 +84233,7 @@ const VideoMessage = (props) => {
84183
84233
  thread: _thread,
84184
84234
  chatThreadOverview: videoMessage.chatThreadOverview,
84185
84235
  onClickThreadTitle: handleClickThreadTitle,
84236
+ status,
84186
84237
  ...baseMsgProps
84187
84238
  }, /* @__PURE__ */ React__default$1.createElement("div", {
84188
84239
  className: classString
@@ -84193,6 +84244,7 @@ const VideoMessage = (props) => {
84193
84244
  controls: true,
84194
84245
  crossOrigin: "anonymous",
84195
84246
  preload: "metadata",
84247
+ onPlay: handlePlayVideo,
84196
84248
  src: videoMessage.url || videoMessage.file.url,
84197
84249
  ...videoProps
84198
84250
  })));
@@ -84454,11 +84506,14 @@ const CombinedMessage = (props) => {
84454
84506
  return;
84455
84507
  }
84456
84508
  rootStore.client.downloadAndParseCombineMessage({
84457
- url: combinedMessage.url,
84458
- secret: combinedMessage.secret
84509
+ url: combinedMessage.url || "",
84510
+ secret: combinedMessage.secret || ""
84459
84511
  }).then((data2) => {
84460
84512
  combinedMessage.messages = data2;
84461
84513
  createDetailContent(data2);
84514
+ if (combinedMessage.chatType == "singleChat" && combinedMessage.from != rootStore.client.context.userId && combinedMessage.status != "read" && !combinedMessage.isChatThread && combinedMessage.to == rootStore.client.context.userId) {
84515
+ rootStore.messageStore.sendReadAck(combinedMessage.id, combinedMessage.from || "");
84516
+ }
84462
84517
  }).catch(() => {
84463
84518
  setDetailContent(/* @__PURE__ */ React__default$1.createElement("div", null, "download message failed"));
84464
84519
  });
@@ -85404,8 +85459,8 @@ let BaseMessage$1 = (props) => {
85404
85459
  };
85405
85460
  const threadNode = () => {
85406
85461
  var _a4, _b2, _c2;
85407
- let { name: name2, messageCount, lastMessage = {} } = chatThreadOverview;
85408
- const { from, type, time: time2 } = lastMessage || {};
85462
+ let { name: name2, messageCount, lastMessage = {} } = chatThreadOverview || {};
85463
+ const { from, type, time: time2 } = lastMessage;
85409
85464
  let msgContent = "";
85410
85465
  switch (type) {
85411
85466
  case "txt":
@@ -85445,7 +85500,7 @@ let BaseMessage$1 = (props) => {
85445
85500
  height: 20,
85446
85501
  type: "THREAD",
85447
85502
  className: `${prefixCls}-thread-name-icon`
85448
- }), /* @__PURE__ */ React__default$1.createElement("span", null, name2)), /* @__PURE__ */ React__default$1.createElement("div", null, /* @__PURE__ */ React__default$1.createElement("span", null, messageCount > 100 ? "100 +" : messageCount), /* @__PURE__ */ React__default$1.createElement(Icon$1, {
85503
+ }), /* @__PURE__ */ React__default$1.createElement("span", null, name2)), /* @__PURE__ */ React__default$1.createElement("div", null, /* @__PURE__ */ React__default$1.createElement("span", null, (messageCount != null ? messageCount : 0 > 100) ? "100 +" : messageCount), /* @__PURE__ */ React__default$1.createElement(Icon$1, {
85449
85504
  width: 16,
85450
85505
  height: 16,
85451
85506
  type: "ARROW_RIGHT",
@@ -85824,6 +85879,9 @@ const AudioMessage = (props) => {
85824
85879
  audioRef.current.play().then((res) => {
85825
85880
  }).catch((err) => {
85826
85881
  });
85882
+ if (audioMessage.chatType == "singleChat" && audioMessage.from != rootStore.client.context.userId && audioMessage.status != "read" && !audioMessage.isChatThread && audioMessage.to == rootStore.client.context.userId) {
85883
+ rootStore.messageStore.sendReadAck(audioMessage.id, audioMessage.from);
85884
+ }
85827
85885
  };
85828
85886
  const handlePlayEnd = () => {
85829
85887
  setPlayStatus(false);
@@ -86780,7 +86838,6 @@ const ContactGroup = (props) => {
86780
86838
  };
86781
86839
  useEffect(() => {
86782
86840
  if (childrenVisible) {
86783
- console.log("\u51B2\u6D17\u7532\u9178");
86784
86841
  setHeight(`auto`);
86785
86842
  }
86786
86843
  }, [itemCount]);
@@ -87198,7 +87255,6 @@ let ContactList = (props) => {
87198
87255
  }, [addressStore.searchList, itemActiveKey, checkedList == null ? void 0 : checkedList.length]);
87199
87256
  const getNameAndType = (id) => {
87200
87257
  var _a3, _b;
87201
- console.log("###", itemActiveKey);
87202
87258
  let name2;
87203
87259
  let type = "contact";
87204
87260
  const findUser = addressStore.contacts.find((item) => item.userId == id);
@@ -87279,7 +87335,6 @@ const ContactDetail = (props) => {
87279
87335
  document.body.removeChild(textArea);
87280
87336
  onUserIdCopied == null ? void 0 : onUserIdCopied(id);
87281
87337
  };
87282
- console.log("avatarUrl", avatarUrl);
87283
87338
  const handleClickMessage = () => {
87284
87339
  const result = onMessageBtnClick == null ? void 0 : onMessageBtnClick();
87285
87340
  if (result == false)
@@ -87307,9 +87362,7 @@ const ContactDetail = (props) => {
87307
87362
  const addContact2 = () => {
87308
87363
  addressStore.acceptContactInvite(data2.id);
87309
87364
  };
87310
- console.log(">>>>>", requestData, data2);
87311
87365
  const isContact = addressStore.contacts.findIndex((item) => item.userId === data2.id) >= 0;
87312
- console.log("isContact", isContact);
87313
87366
  return /* @__PURE__ */ React__default$1.createElement("div", {
87314
87367
  className: classString,
87315
87368
  style: { ...style2 }
@@ -87466,10 +87519,6 @@ const UserSelect = (props) => {
87466
87519
  type: "contact",
87467
87520
  name: user2.nickname
87468
87521
  }));
87469
- const createGroup = () => {
87470
- console.log("createGroup");
87471
- };
87472
- console.log("%%%%%%%", checkedUsers);
87473
87522
  const defaultCheckedUsers = checkedUsers == null ? void 0 : checkedUsers.map((user2) => ({
87474
87523
  type: "contact",
87475
87524
  id: user2.userId
@@ -87531,7 +87580,6 @@ const UserSelect = (props) => {
87531
87580
  style: { marginRight: "24px", width: "68px" },
87532
87581
  type: "primary",
87533
87582
  onClick: (e) => {
87534
- createGroup();
87535
87583
  onOk == null ? void 0 : onOk(e);
87536
87584
  },
87537
87585
  disabled: selectedUsers.length === 0
@@ -87658,7 +87706,11 @@ let MoreAction$1 = (props) => {
87658
87706
  sendImage();
87659
87707
  },
87660
87708
  key: item.content || index2
87661
- }, t2("image"));
87709
+ }, /* @__PURE__ */ React__default$1.createElement(Icon$1, {
87710
+ type: "IMG",
87711
+ width: 18,
87712
+ height: 18
87713
+ }), t2("image"));
87662
87714
  } else if (item.content == "FILE") {
87663
87715
  return /* @__PURE__ */ React__default$1.createElement("li", {
87664
87716
  className: themeMode == "dark" ? "cui-li-dark" : "",
@@ -87667,7 +87719,11 @@ let MoreAction$1 = (props) => {
87667
87719
  sendFile();
87668
87720
  },
87669
87721
  key: item.content || index2
87670
- }, t2("file"));
87722
+ }, /* @__PURE__ */ React__default$1.createElement(Icon$1, {
87723
+ type: "FOLDER",
87724
+ width: 18,
87725
+ height: 18
87726
+ }), t2("file"));
87671
87727
  } else if (item.content == "CARD") {
87672
87728
  return /* @__PURE__ */ React__default$1.createElement("li", {
87673
87729
  className: themeMode == "dark" ? "cui-li-dark" : "",
@@ -87676,7 +87732,11 @@ let MoreAction$1 = (props) => {
87676
87732
  sendCard();
87677
87733
  },
87678
87734
  key: item.content || index2
87679
- }, t2("userCard"));
87735
+ }, /* @__PURE__ */ React__default$1.createElement(Icon$1, {
87736
+ type: "PERSON_SINGLE_FILL",
87737
+ width: 18,
87738
+ height: 18
87739
+ }), t2("userCard"));
87680
87740
  } else if (item.content == "VIDEO") {
87681
87741
  return /* @__PURE__ */ React__default$1.createElement("li", {
87682
87742
  className: themeMode == "dark" ? "cui-li-dark" : "",
@@ -87685,7 +87745,11 @@ let MoreAction$1 = (props) => {
87685
87745
  sendVideo();
87686
87746
  },
87687
87747
  key: item.content || index2
87688
- }, t2("videoBtn"));
87748
+ }, /* @__PURE__ */ React__default$1.createElement(Icon$1, {
87749
+ type: "TRIANGLE_IN_RECTANGLE",
87750
+ width: 18,
87751
+ height: 18
87752
+ }), t2("videoBtn"));
87689
87753
  }
87690
87754
  return /* @__PURE__ */ React__default$1.createElement("li", {
87691
87755
  className: themeMode == "dark" ? "cui-li-dark" : "",
@@ -88981,7 +89045,6 @@ let MessageList = (props) => {
88981
89045
  message: messageData[data2.index]
88982
89046
  }, messageData[data2.index].msg);
88983
89047
  } else if (messageData[data2.index].type == "custom" && messageData[data2.index].customEvent == "userCard") {
88984
- console.log("@@@@@", isThread);
88985
89048
  return /* @__PURE__ */ React__default$1.createElement(UserCardMessage$1, {
88986
89049
  style: data2.style,
88987
89050
  key: messageData[data2.index].id,
@@ -89218,7 +89281,10 @@ const ThreadModal = (props) => {
89218
89281
  },
89219
89282
  className
89220
89283
  );
89221
- const [position, setPosition] = useState$1({});
89284
+ const [position, setPosition] = useState$1({
89285
+ top: 0,
89286
+ left: 0
89287
+ });
89222
89288
  const popupRef = useRef(null);
89223
89289
  useEffect(() => {
89224
89290
  const calculatePosition = () => {
@@ -89741,7 +89807,7 @@ const Thread = (props) => {
89741
89807
  }), /* @__PURE__ */ React__default$1.createElement(MessageInput$1, {
89742
89808
  disabled: threadStore.currentThread.creating && editorDisable,
89743
89809
  isChatThread: true,
89744
- enabledMenton: false,
89810
+ enabledMention: false,
89745
89811
  onBeforeSendMessage: handleSendMessage,
89746
89812
  conversation,
89747
89813
  ...messageInputProps
@@ -129832,14 +129898,14 @@ const Chat = (props) => {
129832
129898
  const [cursor, setCursor] = useState$1();
129833
129899
  const threadScrollRef = useRef(null);
129834
129900
  const pagingGetThreadList = () => {
129835
- var _a4, _b2;
129836
- (_a4 = threadScrollRef == null ? void 0 : threadScrollRef.current) == null ? void 0 : _a4.scrollHeight;
129901
+ var _a4;
129837
129902
  if (cursor === null)
129838
129903
  return;
129839
- (_b2 = rootStore2.threadStore.getGroupChatThreads(CVS.conversationId, cursor)) == null ? void 0 : _b2.then((res) => {
129904
+ (_a4 = rootStore2.threadStore.getGroupChatThreads(CVS.conversationId, cursor)) == null ? void 0 : _a4.then((res) => {
129840
129905
  setCursor(res);
129841
129906
  setTimeout(() => {
129842
- threadScrollRef == null ? void 0 : threadScrollRef.current.scrollTo(threadList.length * 56);
129907
+ var _a5, _b2;
129908
+ (_b2 = (_a5 = threadScrollRef == null ? void 0 : threadScrollRef.current) == null ? void 0 : _a5.scrollTo) == null ? void 0 : _b2.call(_a5, threadList.length * 56);
129843
129909
  }, 100);
129844
129910
  });
129845
129911
  };
@@ -129900,7 +129966,10 @@ const Chat = (props) => {
129900
129966
  src: (_f2 = appUsersInfo == null ? void 0 : appUsersInfo[(_e2 = item.lastMessage) == null ? void 0 : _e2.from]) == null ? void 0 : _f2.avatarurl
129901
129967
  }, ((_h2 = appUsersInfo == null ? void 0 : appUsersInfo[(_g2 = item.lastMessage) == null ? void 0 : _g2.from]) == null ? void 0 : _h2.nickname) || ((_i2 = item.lastMessage) == null ? void 0 : _i2.from)), /* @__PURE__ */ React__default$1.createElement("div", {
129902
129968
  className: `${prefixCls}-thread-item-msgBox-name`
129903
- }, getMsgSenderNickname(item.lastMessage, item.parentId)), /* @__PURE__ */ React__default$1.createElement("div", null, lastMsg), /* @__PURE__ */ React__default$1.createElement("div", null, getConversationTime((_j2 = item.lastMessage) == null ? void 0 : _j2.time))));
129969
+ }, getMsgSenderNickname(
129970
+ item.lastMessage,
129971
+ item.parentId
129972
+ )), /* @__PURE__ */ React__default$1.createElement("div", null, lastMsg), /* @__PURE__ */ React__default$1.createElement("div", null, getConversationTime((_j2 = item.lastMessage) == null ? void 0 : _j2.time))));
129904
129973
  };
129905
129974
  const dom = /* @__PURE__ */ React__default$1.createElement(ThreadScrollList, {
129906
129975
  ref: threadScrollRef,
@@ -130067,13 +130136,13 @@ const Chat = (props) => {
130067
130136
  content: "IMAGE"
130068
130137
  },
130069
130138
  {
130070
- content: "FILE"
130139
+ content: "VIDEO"
130071
130140
  },
130072
130141
  {
130073
- content: "CARD"
130142
+ content: "FILE"
130074
130143
  },
130075
130144
  {
130076
- content: "VIDEO"
130145
+ content: "CARD"
130077
130146
  }
130078
130147
  ]
130079
130148
  };
@@ -130111,12 +130180,10 @@ const Chat = (props) => {
130111
130180
  const [currentCall, setCurrentCall] = useState$1({});
130112
130181
  const showInvite = async (conf) => {
130113
130182
  var _a4;
130114
- console.log("\u6DFB\u52A0\u4EBA", conf);
130115
130183
  const members2 = await ((_a4 = rtcConfig == null ? void 0 : rtcConfig.onAddPerson) == null ? void 0 : _a4.call(rtcConfig, conf));
130116
130184
  const rtcMembers = members2 == null ? void 0 : members2.map((item) => {
130117
130185
  return item.id;
130118
130186
  });
130119
- console.log("\u6DFB\u52A0\u4EBA2", members2, rtcMembers);
130120
130187
  let options2 = {
130121
130188
  callType: currentCall.callType,
130122
130189
  chatType: "groupChat",
@@ -131398,7 +131465,7 @@ const GroupMember = (props) => {
131398
131465
  }));
131399
131466
  };
131400
131467
  const GroupMember$1 = observer(GroupMember);
131401
- const GroupSetting = (props) => {
131468
+ const GroupDetail = (props) => {
131402
131469
  var _a3, _b;
131403
131470
  const {
131404
131471
  conversation,
@@ -131758,7 +131825,6 @@ const GroupSetting = (props) => {
131758
131825
  groupMembers: groupData == null ? void 0 : groupData.members,
131759
131826
  groupId: (infoData == null ? void 0 : infoData.id) || "",
131760
131827
  onUserSelect: (userInfo, selectedUsers) => {
131761
- console.log("======", userInfo, selectedUsers);
131762
131828
  if (userInfo.type == "add") {
131763
131829
  setSelectedOwner(userInfo);
131764
131830
  } else {
@@ -131785,7 +131851,7 @@ const GroupSetting = (props) => {
131785
131851
  onOk: transferOwner2
131786
131852
  }, /* @__PURE__ */ React__default$1.createElement("div", null, selectedOwner ? `${t2("Want to transfer group ownership to")} \u201C${selectedOwner.nickname || selectedOwner.userId}\u201D?` : t2("Please select the person to be transferred")))));
131787
131853
  };
131788
- const GroupSetting$1 = observer(GroupSetting);
131854
+ const GroupDetail$1 = observer(GroupDetail);
131789
131855
  const useEventHandler = () => {
131790
131856
  const rootStore2 = getStore();
131791
131857
  const { messageStore, threadStore, conversationStore, addressStore } = rootStore2;
@@ -136590,7 +136656,7 @@ const Chatroom = (props) => {
136590
136656
  }),
136591
136657
  ...headerProps
136592
136658
  }), /* @__PURE__ */ React__default$1.createElement("p", null), /* @__PURE__ */ React__default$1.createElement("div", {
136593
- style: { position: "relative", flex: "1" }
136659
+ style: { position: "relative", flex: "1", overflow: "hidden", display: "flex" }
136594
136660
  }, typeof renderBroadcast == "function" ? renderBroadcast() : broadcast.length > 0 && /* @__PURE__ */ React__default$1.createElement(Broadcast, {
136595
136661
  loop: 0,
136596
136662
  delay: 1,
@@ -138105,8 +138171,8 @@ export {
138105
138171
  Dropdown,
138106
138172
  Empty,
138107
138173
  FileMessage$1 as FileMessage,
138174
+ GroupDetail$1 as GroupDetail,
138108
138175
  GroupMember$1 as GroupMember,
138109
- GroupSetting$1 as GroupSetting,
138110
138176
  Header$1 as Header,
138111
138177
  Icon$1 as Icon,
138112
138178
  ImageMessage$1 as ImageMessage,