@tencentcloud/roomkit-electron-vue3
Version:
<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,
72 lines (71 loc) • 3.62 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const Vue = require("vue");
require("../../adapter-vue.js");
const TUIChatEngine = require("@tencentcloud/chat-uikit-engine");
const messageBubble = require("../../components/TUIChat/message-list/message-elements/message-bubble.vue.js");
const env = require("../../utils/env.js");
const _hoisted_1 = { class: "message-plugin" };
const _hoisted_2 = {
key: 0,
class: "message-plugin-tip"
};
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
__name: "message-plugin-layout",
props: {
message: { default: () => ({}) },
showStyle: { default: "" },
bubbleClassNameList: { default: () => [] },
blinkMessageIDList: { default: () => [] }
},
emits: ["resendMessage", "handleToggleMessageItem", "handleH5LongPress"],
setup(__props, { emit: __emit }) {
const props = __props;
const emits = __emit;
const messageModel = Vue.computed(() => {
var _a;
return TUIChatEngine.TUIStore.getMessageModel((_a = props.message) == null ? void 0 : _a.ID);
});
const resendMessage = (message) => {
emits("resendMessage", message);
};
const handleToggleMessageItem = (e, message, isLongpress = false) => {
emits("handleToggleMessageItem", e, message, isLongpress);
};
const handleH5LongPress = (e, message, type) => {
emits("handleH5LongPress", e, message, type);
};
return (_ctx, _cache) => {
return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
props.showStyle === "tip" ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_2, [
Vue.renderSlot(_ctx.$slots, "messageTip", {}, void 0, true)
])) : props.showStyle === "bubble" ? (Vue.openBlock(), Vue.createElementBlock("div", {
key: 1,
class: "message-plugin-bubble-content",
onLongpress: _cache[1] || (_cache[1] = ($event) => handleToggleMessageItem($event, Vue.unref(messageModel), true)),
onContextmenu: _cache[2] || (_cache[2] = Vue.withModifiers(($event) => handleToggleMessageItem($event, Vue.unref(messageModel)), ["prevent", "right"])),
onTouchstart: _cache[3] || (_cache[3] = ($event) => handleH5LongPress($event, Vue.unref(messageModel), "touchstart")),
onTouchend: _cache[4] || (_cache[4] = ($event) => handleH5LongPress($event, Vue.unref(messageModel), "touchend")),
onMouseover: _cache[5] || (_cache[5] = ($event) => handleH5LongPress($event, Vue.unref(messageModel), "touchend"))
}, [
Vue.createVNode(messageBubble.default, {
messageItem: Vue.unref(messageModel),
content: Vue.unref(messageModel).getMessageContent(),
blinkMessageIDList: props.blinkMessageIDList,
classNameList: props.bubbleClassNameList,
onResendMessage: _cache[0] || (_cache[0] = ($event) => resendMessage(Vue.unref(messageModel)))
}, {
messageElement: Vue.withCtx(() => [
!Vue.unref(env.isUniFrameWork) ? Vue.renderSlot(_ctx.$slots, "messageBubble", { key: 0 }, void 0, true) : Vue.createCommentVNode("", true)
]),
default: Vue.withCtx(() => [
Vue.unref(env.isUniFrameWork) ? Vue.renderSlot(_ctx.$slots, "messageBubble", { key: 0 }, void 0, true) : Vue.createCommentVNode("", true)
]),
_: 3
}, 8, ["messageItem", "content", "blinkMessageIDList", "classNameList"])
], 32)) : Vue.createCommentVNode("", true)
]);
};
}
});
exports.default = _sfc_main;