yx-web-sdk 0.0.26 → 0.0.28

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.
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../index.vue_vue_type_style_index_0_lang-DectxdQg.mjs";
1
+ import { _ as _sfc_main } from "../index.vue_vue_type_style_index_0_lang-Bzp6GXSr.mjs";
2
2
  export {
3
3
  _sfc_main as ChatCard,
4
4
  _sfc_main as default
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../index.vue_vue_type_style_index_0_lang-CJ6N1ut8.mjs";
1
+ import { _ as _sfc_main } from "../index.vue_vue_type_style_index_0_lang-CQtS2mCm.mjs";
2
2
  export {
3
3
  _sfc_main as ChatContent,
4
4
  _sfc_main as default
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../index.vue_vue_type_style_index_0_lang-D8SCARR2.mjs";
1
+ import { _ as _sfc_main } from "../index.vue_vue_type_style_index_0_lang-CvNvjkKX.mjs";
2
2
  export {
3
3
  _sfc_main as ChatPage,
4
4
  _sfc_main as default
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../index.vue_vue_type_script_setup_true_lang-BpYIybBN.mjs";
1
+ import { _ as _sfc_main } from "../index.vue_vue_type_script_setup_true_lang-CvCfYqe9.mjs";
2
2
  export {
3
3
  _sfc_main as ChatRoom,
4
4
  _sfc_main as default
@@ -2,7 +2,7 @@ import { defineComponent, computed, ref, onMounted, onUnmounted, openBlock, crea
2
2
  import { useRouter } from "vue-router";
3
3
  import { Spin, Result, Button, Empty, message } from "ant-design-vue";
4
4
  import { s as setGlobalRequest, c as useImSdkStore, a as useServerStore, u as useChannelStore, b as useUserStore, d as useGlobalStore } from "../index.vue_vue_type_style_index_0_lang-Bb0HV9Zp.mjs";
5
- import { _ as _sfc_main$1 } from "../index.vue_vue_type_style_index_0_lang-D8SCARR2.mjs";
5
+ import { _ as _sfc_main$1 } from "../index.vue_vue_type_style_index_0_lang-CvNvjkKX.mjs";
6
6
  import { S as ServerChannelSidebar } from "../index-BvfJ77uD.mjs";
7
7
  import { M as MembersSidebar } from "../index-DwPi-usb.mjs";
8
8
  import { _ as _export_sfc } from "../_plugin-vue_export-helper-1tPrXgE0.mjs";
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, ref, computed, watch, openBlock, createBlock, createElementBlock } from "vue";
2
- import { _ as _sfc_main$1 } from "./index.vue_vue_type_style_index_0_lang-CJ6N1ut8.mjs";
2
+ import { _ as _sfc_main$1 } from "./index.vue_vue_type_style_index_0_lang-CQtS2mCm.mjs";
3
3
  import { u as useChannelStore, a as useServerStore, b as useUserStore } from "./index.vue_vue_type_style_index_0_lang-Bb0HV9Zp.mjs";
4
4
  const _hoisted_1 = { key: 1 };
5
5
  const HISTORY_LIMIT = 100;
@@ -220,19 +220,90 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
220
220
  return props.msg.fromAccount === props.myAccid && nowTime.value - props.msg.time <= REVOCATION_INTERVAL;
221
221
  });
222
222
  const { copy } = useClipboard();
223
+ const imageBlobCache = /* @__PURE__ */ new Map();
224
+ async function fetchImageAsPngBlob(url) {
225
+ const response = await fetch(url);
226
+ const blob = await response.blob();
227
+ if (blob.type === "image/png") {
228
+ return blob;
229
+ }
230
+ return new Promise((resolve, reject) => {
231
+ const objectUrl = URL.createObjectURL(blob);
232
+ const img = document.createElement("img");
233
+ img.crossOrigin = "anonymous";
234
+ img.onload = () => {
235
+ const canvas = document.createElement("canvas");
236
+ canvas.width = img.naturalWidth;
237
+ canvas.height = img.naturalHeight;
238
+ const ctx = canvas.getContext("2d");
239
+ ctx.drawImage(img, 0, 0);
240
+ canvas.toBlob((b) => {
241
+ URL.revokeObjectURL(objectUrl);
242
+ if (b) {
243
+ resolve(b);
244
+ } else {
245
+ reject(new Error("canvas toBlob 失败"));
246
+ }
247
+ }, "image/png");
248
+ };
249
+ img.onerror = () => {
250
+ URL.revokeObjectURL(objectUrl);
251
+ reject(new Error("图片加载失败"));
252
+ };
253
+ img.src = objectUrl;
254
+ });
255
+ }
256
+ function clearImageBlobCache() {
257
+ imageBlobCache.clear();
258
+ }
223
259
  const emit = __emit;
224
260
  const textMsgContextMenuVisible = ref(false);
225
261
  const textMsgContextMenuX = ref(0);
226
262
  const textMsgContextMenuY = ref(0);
227
263
  const textMsgContextMenuRef = ref(null);
228
- function onTextMsgContextMenu(e) {
264
+ const eventSource = ref("");
265
+ function onTextMsgContextMenu(e, p) {
266
+ var _a;
267
+ eventSource.value = p ?? "normal";
229
268
  textMsgContextMenuX.value = e.clientX;
230
269
  textMsgContextMenuY.value = e.clientY;
231
- textMsgContextMenuVisible.value = true;
270
+ if (p === "img") {
271
+ const imgUrl = (_a = props.msg.attach) == null ? void 0 : _a.url;
272
+ if (imgUrl && !imageBlobCache.has(imgUrl)) {
273
+ fetchImageAsPngBlob(imgUrl).then((blob) => {
274
+ imageBlobCache.set(imgUrl, blob);
275
+ }).catch((err) => {
276
+ console.error("预下载图片失败: ", err);
277
+ });
278
+ }
279
+ }
280
+ setTimeout(
281
+ () => {
282
+ textMsgContextMenuVisible.value = true;
283
+ },
284
+ p === "img" ? 150 : 0
285
+ );
232
286
  }
233
287
  function onCopyClick() {
234
- var _a;
288
+ var _a, _b;
235
289
  if (props.msg.type === "text") {
290
+ if (eventSource.value === "img") {
291
+ const imgUrl = (_a = props.msg.attach) == null ? void 0 : _a.url;
292
+ const cachedBlob = imageBlobCache.get(imgUrl);
293
+ if (cachedBlob) {
294
+ navigator.clipboard.write([new ClipboardItem({ "image/png": cachedBlob })]).then(() => {
295
+ }).catch((err) => {
296
+ console.error("copy image error: ", err);
297
+ message.error("复制图片失败");
298
+ }).finally(() => {
299
+ textMsgContextMenuVisible.value = false;
300
+ });
301
+ } else {
302
+ message.warning("图片正在加载中,请稍后再试");
303
+ textMsgContextMenuVisible.value = false;
304
+ }
305
+ return;
306
+ }
236
307
  copy(props.msg.body).then(() => {
237
308
  }).catch((err) => {
238
309
  console.error("copy error: ", err);
@@ -242,13 +313,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
242
313
  });
243
314
  }
244
315
  if (props.msg.type === "image") {
245
- copy((_a = props.msg.attach) == null ? void 0 : _a.url).then(() => {
246
- }).catch((err) => {
247
- console.error("copy error: ", err);
248
- message.error("复制失败");
249
- }).finally(() => {
316
+ const imgUrl = (_b = props.msg.attach) == null ? void 0 : _b.url;
317
+ const cachedBlob = imageBlobCache.get(imgUrl);
318
+ if (cachedBlob) {
319
+ navigator.clipboard.write([new ClipboardItem({ "image/png": cachedBlob })]).then(() => {
320
+ }).catch((err) => {
321
+ console.error("copy image error: ", err);
322
+ message.error("复制图片失败");
323
+ }).finally(() => {
324
+ textMsgContextMenuVisible.value = false;
325
+ });
326
+ } else {
327
+ message.warning("图片正在加载中,请稍后再试");
250
328
  textMsgContextMenuVisible.value = false;
251
- });
329
+ }
252
330
  }
253
331
  }
254
332
  function onQuoteClick() {
@@ -317,6 +395,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
317
395
  onBeforeUnmount(() => {
318
396
  document.removeEventListener("click", handleClickOutside, true);
319
397
  document.removeEventListener("contextmenu", handleClickOutside, true);
398
+ clearImageBlobCache();
320
399
  });
321
400
  const myAvatar = computed(() => {
322
401
  var _a, _b, _c, _d;
@@ -478,7 +557,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
478
557
  ], 2)) : __props.msg.type === "image" ? (openBlock(), createElementBlock("div", {
479
558
  key: 2,
480
559
  class: normalizeClass(["chatCardMainContent flash-target", { myMsg: __props.msg.fromAccount === __props.myAccid, otherMsg: __props.msg.fromAccount !== __props.myAccid }]),
481
- onContextmenu: withModifiers(onTextMsgContextMenu, ["prevent"])
560
+ onContextmenu: _cache[0] || (_cache[0] = withModifiers(($event) => onTextMsgContextMenu($event, "img"), ["prevent"]))
482
561
  }, [
483
562
  createVNode(unref(Image), {
484
563
  class: "imgMsg",
@@ -496,24 +575,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
496
575
  ], 34)) : (openBlock(), createElementBlock("div", {
497
576
  key: 3,
498
577
  class: normalizeClass(["chatCardMainContent", { myMsg: __props.msg.fromAccount === __props.myAccid, otherMsg: __props.msg.fromAccount !== __props.myAccid }])
499
- }, [..._cache[1] || (_cache[1] = [
578
+ }, [..._cache[3] || (_cache[3] = [
500
579
  createElementVNode("div", { class: "textMsg" }, toDisplayString("暂不支持该消息"), -1)
501
580
  ])], 2)),
502
581
  __props.msg.type === "text" && IMG_EXT.includes(((_j = (_i = __props.msg) == null ? void 0 : _i.attach) == null ? void 0 : _j.ext) || "") ? (openBlock(), createElementBlock("div", _hoisted_14, [
503
- ((_l = (_k = __props.msg) == null ? void 0 : _k.attach) == null ? void 0 : _l.size) && ((_n = (_m = __props.msg) == null ? void 0 : _m.attach) == null ? void 0 : _n.size) < MAX_IMG_PREVIEW_SIZE ? (openBlock(), createBlock(unref(Image), {
582
+ ((_l = (_k = __props.msg) == null ? void 0 : _k.attach) == null ? void 0 : _l.size) && ((_n = (_m = __props.msg) == null ? void 0 : _m.attach) == null ? void 0 : _n.size) < MAX_IMG_PREVIEW_SIZE ? (openBlock(), createElementBlock("div", {
504
583
  key: 0,
505
- class: "imgMsg",
506
- src: (_p = (_o = __props.msg) == null ? void 0 : _o.attach) == null ? void 0 : _p.url,
507
- width: attachImageSize.value.width,
508
- height: attachImageSize.value.height
509
- }, {
510
- previewMask: withCtx(() => [
511
- createElementVNode("div", _hoisted_15, [
512
- createVNode(unref(EyeOutlined))
513
- ])
514
- ]),
515
- _: 1
516
- }, 8, ["src", "width", "height"])) : (openBlock(), createBlock(_sfc_main$1, {
584
+ onContextmenu: _cache[1] || (_cache[1] = withModifiers(($event) => onTextMsgContextMenu($event, "img"), ["prevent"]))
585
+ }, [
586
+ createVNode(unref(Image), {
587
+ class: "imgMsg",
588
+ src: (_p = (_o = __props.msg) == null ? void 0 : _o.attach) == null ? void 0 : _p.url,
589
+ width: attachImageSize.value.width,
590
+ height: attachImageSize.value.height
591
+ }, {
592
+ previewMask: withCtx(() => [
593
+ createElementVNode("div", _hoisted_15, [
594
+ createVNode(unref(EyeOutlined))
595
+ ])
596
+ ]),
597
+ _: 1
598
+ }, 8, ["src", "width", "height"])
599
+ ], 32)) : (openBlock(), createBlock(_sfc_main$1, {
517
600
  key: 1,
518
601
  attach: (_q = __props.msg) == null ? void 0 : _q.attach
519
602
  }, null, 8, ["attach"]))
@@ -540,7 +623,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
540
623
  src: (_s = msgExt.value.quoteMsg.attach) == null ? void 0 : _s.url,
541
624
  width: quoteImageMsgSize.value.width,
542
625
  height: quoteImageMsgSize.value.height,
543
- onClick: _cache[0] || (_cache[0] = withModifiers(() => {
626
+ onClick: _cache[2] || (_cache[2] = withModifiers(() => {
544
627
  }, ["stop", "prevent"]))
545
628
  }, {
546
629
  previewMask: withCtx(() => [
@@ -1,8 +1,8 @@
1
- import { createVNode, ref, computed, watch, nextTick, defineComponent, openBlock, createElementBlock, createElementVNode, normalizeStyle, unref, normalizeClass, createBlock, createCommentVNode, Fragment, renderList, toDisplayString, withCtx } from "vue";
1
+ import { createVNode, ref, computed, watch, nextTick, defineComponent, openBlock, createElementBlock, createElementVNode, normalizeStyle, unref, normalizeClass, createBlock, createCommentVNode, Fragment, renderList, toDisplayString, withModifiers, withCtx } from "vue";
2
2
  import { useRouter } from "vue-router";
3
3
  import { Input, Image, Popover, Button, Upload, message } from "ant-design-vue";
4
4
  import { A as AitPersonPopover } from "./index-BhLJLbtt.mjs";
5
- import { L as LoadingOutlined, _ as _sfc_main$2, a as _sfc_main$3 } from "./index.vue_vue_type_style_index_0_lang-DectxdQg.mjs";
5
+ import { L as LoadingOutlined, _ as _sfc_main$2, a as _sfc_main$3 } from "./index.vue_vue_type_style_index_0_lang-Bzp6GXSr.mjs";
6
6
  import { _ as _sfc_main$1 } from "./index.vue_vue_type_style_index_0_lang-BxXBf_VA.mjs";
7
7
  import { a as useServerStore, g as getServerMembersByAccids, u as useChannelStore, e as getImageMsgDisplaySize, f as filterStr, i as isLt } from "./index.vue_vue_type_style_index_0_lang-Bb0HV9Zp.mjs";
8
8
  import { useEventListener, useDebounceFn } from "@vueuse/core";
@@ -472,11 +472,10 @@ const _hoisted_15 = {
472
472
  class: "chatroomInputAttachmentWrapperImg"
473
473
  };
474
474
  const _hoisted_16 = { class: "chatroomInputAttachmentWrapperImgMask" };
475
- const _hoisted_17 = { class: "chatroomInputWrapper" };
476
- const _hoisted_18 = { class: "chatroomInputLeft" };
477
- const _hoisted_19 = { style: { "width": "400px" } };
478
- const _hoisted_20 = ["onClick"];
479
- const _hoisted_21 = { class: "chatroomController" };
475
+ const _hoisted_17 = { class: "chatroomInputLeft" };
476
+ const _hoisted_18 = { style: { "width": "400px" } };
477
+ const _hoisted_19 = ["onClick"];
478
+ const _hoisted_20 = { class: "chatroomController" };
480
479
  const MAX_IMG_SIZE = 10;
481
480
  const _sfc_main = /* @__PURE__ */ defineComponent({
482
481
  ...{
@@ -757,41 +756,101 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
757
756
  }
758
757
  };
759
758
  const handlePaste = async (e) => {
759
+ var _a;
760
760
  if (props.sendDisabled || attachmentUploading.value) return;
761
761
  const clipboardData = e.clipboardData;
762
762
  if (!clipboardData) return;
763
- const items = clipboardData.items;
764
- for (let i = 0; i < items.length; i++) {
765
- const item = items[i];
766
- if (item.type.startsWith("image/")) {
767
- const file = item.getAsFile();
768
- if (file) {
769
- e.preventDefault();
770
- if (!isLt(file.size, MAX_IMG_SIZE)) {
771
- message.error("图片大小最大支持20M");
772
- return;
773
- }
763
+ let imageFile = null;
764
+ if (clipboardData.items && clipboardData.items.length) {
765
+ for (let i = 0; i < clipboardData.items.length; i++) {
766
+ const item = clipboardData.items[i];
767
+ if (item.type.startsWith("image/")) {
768
+ imageFile = item.getAsFile();
769
+ break;
770
+ }
771
+ }
772
+ }
773
+ if (!imageFile && clipboardData.files && clipboardData.files.length) {
774
+ for (let i = 0; i < clipboardData.files.length; i++) {
775
+ if (clipboardData.files[i].type.startsWith("image/")) {
776
+ imageFile = clipboardData.files[i];
777
+ break;
778
+ }
779
+ }
780
+ }
781
+ if (!imageFile) return;
782
+ e.preventDefault();
783
+ const existingFile = (_a = attachment.value) == null ? void 0 : _a.__file;
784
+ if (existingFile && existingFile.size === imageFile.size && existingFile.type === imageFile.type) {
785
+ return;
786
+ }
787
+ if (!isLt(imageFile.size, MAX_IMG_SIZE)) {
788
+ message.error("图片大小最大支持20M");
789
+ return;
790
+ }
791
+ attachmentUploading.value = true;
792
+ try {
793
+ const uploadResult = await channelStore.uploadImage({
794
+ file: imageFile,
795
+ onUploadStart: () => {
774
796
  attachmentUploading.value = true;
775
- try {
776
- const uploadResult = await channelStore.uploadImage({
777
- file,
778
- onUploadStart: () => {
779
- attachmentUploading.value = true;
780
- },
781
- onUploadDone: () => {
782
- attachmentUploading.value = false;
783
- }
784
- });
785
- attachment.value = uploadResult;
786
- } catch (error) {
787
- console.error("上传图片失败:", error);
788
- message.error("上传图片失败");
789
- attachmentUploading.value = false;
790
- }
797
+ },
798
+ onUploadDone: () => {
799
+ attachmentUploading.value = false;
791
800
  }
792
- return;
801
+ });
802
+ uploadResult.__file = imageFile;
803
+ attachment.value = uploadResult;
804
+ } catch (error) {
805
+ console.error("上传图片失败:", error);
806
+ message.error("上传图片失败");
807
+ attachmentUploading.value = false;
808
+ }
809
+ };
810
+ const handleDrop = async (e) => {
811
+ var _a;
812
+ e.preventDefault();
813
+ if (props.sendDisabled || attachmentUploading.value) return;
814
+ const dataTransfer = e.dataTransfer;
815
+ console.log("dataTransfer", dataTransfer);
816
+ if (!dataTransfer || !dataTransfer.files.length) return;
817
+ let imageFile = null;
818
+ for (let i = 0; i < dataTransfer.files.length; i++) {
819
+ if (dataTransfer.files[i].type.startsWith("image/")) {
820
+ imageFile = dataTransfer.files[i];
821
+ break;
793
822
  }
794
823
  }
824
+ if (!imageFile) {
825
+ message.error("仅支持拖入图片文件");
826
+ return;
827
+ }
828
+ const existingFile = (_a = attachment.value) == null ? void 0 : _a.__file;
829
+ if (existingFile && existingFile.size === imageFile.size && existingFile.type === imageFile.type) {
830
+ return;
831
+ }
832
+ if (!isLt(imageFile.size, MAX_IMG_SIZE)) {
833
+ message.error(`图片大小最大支持${MAX_IMG_SIZE}MB`);
834
+ return;
835
+ }
836
+ attachmentUploading.value = true;
837
+ try {
838
+ const uploadResult = await channelStore.uploadImage({
839
+ file: imageFile,
840
+ onUploadStart: () => {
841
+ attachmentUploading.value = true;
842
+ },
843
+ onUploadDone: () => {
844
+ attachmentUploading.value = false;
845
+ }
846
+ });
847
+ uploadResult.__file = imageFile;
848
+ attachment.value = uploadResult;
849
+ } catch (error) {
850
+ console.error("拖拽上传图片失败:", error);
851
+ message.error("拖拽上传图片失败");
852
+ attachmentUploading.value = false;
853
+ }
795
854
  };
796
855
  const uploadImgHandler = async (file) => {
797
856
  if (!file.type.startsWith("image/")) {
@@ -999,7 +1058,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
999
1058
  __props.msgs.length ? (openBlock(), createElementBlock("div", _hoisted_2, [
1000
1059
  __props.isNoMore ? (openBlock(), createElementBlock("div", _hoisted_3, "没有更多消息了~")) : loadingMore.value ? (openBlock(), createElementBlock("div", _hoisted_4, [
1001
1060
  createVNode(unref(LoadingOutlined)),
1002
- _cache[1] || (_cache[1] = createElementVNode("span", { style: { "margin-left": "10px" } }, "正在加载,请稍候", -1))
1061
+ _cache[2] || (_cache[2] = createElementVNode("span", { style: { "margin-left": "10px" } }, "正在加载,请稍候", -1))
1003
1062
  ])) : createCommentVNode("", true)
1004
1063
  ])) : createCommentVNode("", true),
1005
1064
  __props.msgs.length ? (openBlock(), createElementBlock("div", _hoisted_5, [
@@ -1023,7 +1082,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1023
1082
  class: "emptyChatroomContent",
1024
1083
  style: normalizeStyle({ height: ((_c = curChannel.value) == null ? void 0 : _c.ext) ? "calc(100% - 48px)" : "100%" })
1025
1084
  }, [
1026
- _cache[2] || (_cache[2] = createElementVNode("div", null, "欢迎来到", -1)),
1085
+ _cache[3] || (_cache[3] = createElementVNode("div", null, "欢迎来到", -1)),
1027
1086
  createElementVNode("h1", null, "#" + toDisplayString(__props.channelName), 1)
1028
1087
  ], 4))
1029
1088
  ], 38),
@@ -1075,17 +1134,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1075
1134
  }, null, 8, ["src"])
1076
1135
  ])) : createCommentVNode("", true)
1077
1136
  ])) : createCommentVNode("", true),
1078
- createElementVNode("div", _hoisted_17, [
1079
- createElementVNode("div", _hoisted_18, [
1137
+ createElementVNode("div", {
1138
+ class: "chatroomInputWrapper",
1139
+ onDragover: _cache[1] || (_cache[1] = withModifiers(() => {
1140
+ }, ["prevent"])),
1141
+ onDrop: withModifiers(handleDrop, ["prevent"])
1142
+ }, [
1143
+ createElementVNode("div", _hoisted_17, [
1080
1144
  createVNode(unref(Popover), { placement: "topLeft" }, {
1081
1145
  content: withCtx(() => [
1082
- createElementVNode("div", _hoisted_19, [
1146
+ createElementVNode("div", _hoisted_18, [
1083
1147
  (openBlock(), createElementBlock(Fragment, null, renderList(emjjData, (value, i) => {
1084
1148
  return createElementVNode("span", {
1085
1149
  key: i,
1086
1150
  style: { "font-size": "16px", "cursor": "pointer" },
1087
1151
  onClick: ($event) => insertEmj(i)
1088
- }, toDisplayString(value), 9, _hoisted_20);
1152
+ }, toDisplayString(value), 9, _hoisted_19);
1089
1153
  }), 64))
1090
1154
  ])
1091
1155
  ]),
@@ -1095,7 +1159,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1095
1159
  type: "text",
1096
1160
  disabled: __props.sendDisabled
1097
1161
  }, {
1098
- default: withCtx(() => [..._cache[3] || (_cache[3] = [
1162
+ default: withCtx(() => [..._cache[4] || (_cache[4] = [
1099
1163
  createElementVNode("svg", {
1100
1164
  width: "21",
1101
1165
  height: "21",
@@ -1130,7 +1194,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1130
1194
  onBlur: handleInputBlur,
1131
1195
  onPaste: handlePaste
1132
1196
  }, null, 8, ["value", "placeholder", "disabled", "onKeydown", "onClick"]),
1133
- createElementVNode("div", _hoisted_21, [
1197
+ createElementVNode("div", _hoisted_20, [
1134
1198
  createVNode(unref(Upload), {
1135
1199
  "before-upload": uploadImgHandler,
1136
1200
  "show-upload-list": false,
@@ -1145,7 +1209,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1145
1209
  loading: attachmentUploading.value,
1146
1210
  disabled: __props.sendDisabled || attachmentUploading.value
1147
1211
  }, {
1148
- icon: withCtx(() => [..._cache[4] || (_cache[4] = [
1212
+ icon: withCtx(() => [..._cache[5] || (_cache[5] = [
1149
1213
  createElementVNode("svg", {
1150
1214
  width: "21",
1151
1215
  height: "18",
@@ -1170,14 +1234,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1170
1234
  ]),
1171
1235
  _: 1
1172
1236
  }, 8, ["accept", "disabled"]),
1173
- _cache[6] || (_cache[6] = createElementVNode("span", { class: "lineSeparator" }, null, -1)),
1237
+ _cache[7] || (_cache[7] = createElementVNode("span", { class: "lineSeparator" }, null, -1)),
1174
1238
  createVNode(unref(Button), {
1175
1239
  class: "chatroomButtonArrowUp",
1176
1240
  type: "text",
1177
1241
  disabled: __props.sendDisabled,
1178
1242
  onClick: handleSendText
1179
1243
  }, {
1180
- icon: withCtx(() => [..._cache[5] || (_cache[5] = [
1244
+ icon: withCtx(() => [..._cache[6] || (_cache[6] = [
1181
1245
  createElementVNode("svg", {
1182
1246
  width: "36",
1183
1247
  height: "36",
@@ -1200,7 +1264,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1200
1264
  _: 1
1201
1265
  }, 8, ["disabled"])
1202
1266
  ])
1203
- ])
1267
+ ], 32)
1204
1268
  ])
1205
1269
  ]),
1206
1270
  createVNode(AitPersonPopover, {
@@ -1,10 +1,10 @@
1
1
  import { defineComponent, ref, h, watch, computed, openBlock, createElementBlock, createElementVNode, toDisplayString, createCommentVNode, createVNode } from "vue";
2
2
  import { List, Typography } from "ant-design-vue";
3
- import { _ as _sfc_main$1 } from "./index.vue_vue_type_script_setup_true_lang-BpYIybBN.mjs";
3
+ import { _ as _sfc_main$1 } from "./index.vue_vue_type_script_setup_true_lang-CvCfYqe9.mjs";
4
4
  import { a as useServerStore, u as useChannelStore } from "./index.vue_vue_type_style_index_0_lang-Bb0HV9Zp.mjs";
5
5
  import "./index-L_drmZir.mjs";
6
6
  import { useLocalStorage } from "@vueuse/core";
7
- import { L as LoadingOutlined } from "./index.vue_vue_type_style_index_0_lang-DectxdQg.mjs";
7
+ import { L as LoadingOutlined } from "./index.vue_vue_type_style_index_0_lang-Bzp6GXSr.mjs";
8
8
  const _hoisted_1 = { class: "yx-chat-page-container" };
9
9
  const _hoisted_2 = { class: "header-wrap" };
10
10
  const _hoisted_3 = { class: "left" };