@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,
78 lines (77 loc) • 3.06 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 basic = require("../../stores/basic.js");
const pinia = require("pinia");
const index = require("../../locales/index.js");
require("../../services/main.js");
const roomService = require("../../services/roomService.js");
require("@tencentcloud/tuiroom-engine-js");
const environment = require("../../utils/environment.js");
require("mitt");
require("../../services/manager/roomActionManager.js");
require("@tencentcloud/tui-core");
const index$1 = require("../RoomInvite/index.js");
const vClickOutside = require("../../directives/vClickOutside.js");
const _hoisted_1 = {
key: 0,
class: "invite-control-container"
};
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
__name: "InviteControl",
emits: ["show-overlay"],
setup(__props, { emit: __emit }) {
const isShowInviteTab = Vue.ref(false);
const inviteRef = Vue.ref();
const basicStore = basic.useBasicStore();
const { sidebarName } = pinia.storeToRefs(basicStore);
const { t } = index.useI18n();
const emit = __emit;
const inviteControlConfig = roomService.roomService.getComponentConfig("InviteControl");
function toggleInviteSidebar() {
isShowInviteTab.value = !isShowInviteTab.value;
if (environment.isMobile) {
if (basicStore.sidebarName === "invite") {
basicStore.setSidebarName("");
return;
}
basicStore.setSidebarName("invite");
emit("show-overlay", {
name: "RoomInviteOverlay",
visible: isShowInviteTab.value
});
}
roomService.roomService.trackingManager.sendMessage("experience-invite");
}
function handleClickOutSide() {
if (isShowInviteTab.value) {
isShowInviteTab.value = false;
}
}
return (_ctx, _cache) => {
return Vue.unref(inviteControlConfig).visible ? Vue.withDirectives((Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
Vue.createVNode(IconButton.default, {
class: "invite",
"is-active": Vue.unref(sidebarName) === "invite",
title: Vue.unref(t)("Invite"),
onClickIcon: toggleInviteSidebar
}, {
default: Vue.withCtx(() => [
Vue.createVNode(Vue.unref(uikitBaseComponentVue3.IconInvite), { size: "24" })
]),
_: 1
}, 8, ["is-active", "title"]),
!Vue.unref(environment.isMobile) && isShowInviteTab.value ? (Vue.openBlock(), Vue.createBlock(Vue.unref(index$1.default), {
key: 0,
ref_key: "inviteRef",
ref: inviteRef
}, null, 512)) : Vue.createCommentVNode("", true)
])), [
[Vue.unref(vClickOutside.default), handleClickOutSide]
]) : Vue.createCommentVNode("", true);
};
}
});
exports.default = _sfc_main;
;