@tencentcloud/roomkit-web-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,
106 lines (105 loc) • 4.58 kB
JavaScript
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const Vue = require("vue");
const uikitBaseComponentVue3 = require("@tencentcloud/uikit-base-component-vue3");
const IconButton = require("../../common/base/IconButton.vue.js");
const useMoreControlHooks = require("./useMoreControlHooks.js");
const ChatControl_vue_vue_type_script_setup_true_lang = require("../ChatControl.vue.js");
const InviteControl = require("../InviteControl.vue.js");
const ContactControl = require("../ContactControl.vue.js");
const room = require("../../../stores/room.js");
const useMitt = require("../../../hooks/useMitt.js");
const vTap = require("../../../directives/vTap.js");
require("../../../services/main.js");
const roomService = require("../../../services/roomService.js");
require("../../../locales/index.js");
require("@tencentcloud/tuiroom-engine-js");
require("../../../utils/environment.js");
require("mitt");
require("../../../services/manager/roomActionManager.js");
require("@tencentcloud/tui-core");
const _hoisted_1 = {
key: 0,
class: "more-control-container"
};
const _hoisted_2 = { class: "control-compent" };
const _hoisted_3 = { class: "close" };
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
__name: "MoreControlH5",
emits: ["show-overlay"],
setup(__props, { emit: __emit }) {
const moreControlConfig = roomService.roomService.getComponentConfig("MoreControl");
const showMoreContent = Vue.ref(false);
const moreContentRef = Vue.ref();
const { t, sidebarName } = useMoreControlHooks.default();
const roomStore = room.useRoomStore();
const emit = __emit;
function showMore() {
showMoreContent.value = true;
}
function handleCancelControl() {
showMoreContent.value = false;
}
function handleControlClick(name) {
useMitt.default.emit("experience-communication", name);
}
function handleShowOverlay(data) {
showMoreContent.value = false;
emit("show-overlay", data);
}
function handleDocumentClick(event) {
if (showMoreContent.value && !moreContentRef.value.contains(event.target)) {
showMoreContent.value = false;
}
}
Vue.onMounted(() => {
document == null ? void 0 : document.addEventListener("click", handleDocumentClick, true);
});
Vue.onUnmounted(() => {
document == null ? void 0 : document.removeEventListener("click", handleDocumentClick, true);
});
return (_ctx, _cache) => {
return Vue.openBlock(), Vue.createElementBlock("div", null, [
Vue.unref(moreControlConfig).visible ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
Vue.withDirectives((Vue.openBlock(), Vue.createBlock(IconButton.default, {
"is-active": Vue.unref(sidebarName) === "more",
title: Vue.unref(t)("More")
}, {
default: Vue.withCtx(() => [
Vue.createVNode(Vue.unref(uikitBaseComponentVue3.IconExtension), { size: "24" })
]),
_: 1
}, 8, ["is-active", "title"])), [
[Vue.unref(vTap.default), showMore]
])
])) : Vue.createCommentVNode("", true),
showMoreContent.value ? (Vue.openBlock(), Vue.createElementBlock("div", {
key: 1,
ref_key: "moreContentRef",
ref: moreContentRef,
class: "show-more-content"
}, [
Vue.createElementVNode("div", _hoisted_2, [
Vue.unref(roomStore).isSpeakAfterTakingSeatMode ? (Vue.openBlock(), Vue.createBlock(ChatControl_vue_vue_type_script_setup_true_lang.default, {
key: 0,
onClick: _cache[0] || (_cache[0] = ($event) => handleControlClick("chatControl"))
})) : Vue.createCommentVNode("", true),
Vue.createVNode(ContactControl.default, {
onClick: _cache[1] || (_cache[1] = ($event) => handleControlClick("contactControl"))
}),
Vue.createVNode(InviteControl.default, {
onShowOverlay: handleShowOverlay,
onClick: _cache[2] || (_cache[2] = ($event) => handleControlClick("inviteControl"))
})
]),
Vue.withDirectives((Vue.openBlock(), Vue.createElementBlock("div", _hoisted_3, [
Vue.createTextVNode(Vue.toDisplayString(Vue.unref(t)("Cancel")), 1)
])), [
[Vue.unref(vTap.default), handleCancelControl]
])
], 512)) : Vue.createCommentVNode("", true)
]);
};
}
});
exports.default = _sfc_main;
;