@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,
130 lines (129 loc) • 6.32 kB
JavaScript
import { defineComponent, computed, createElementBlock, createCommentVNode, unref, openBlock, createElementVNode, createVNode, toDisplayString, Fragment, renderList, normalizeClass, createBlock } from "vue";
import { IconClose } from "@tencentcloud/uikit-base-component-vue3";
import _sfc_main$1 from "../../core/components/AudioSetting/index.vue.mjs";
import VideoSetting from "../../core/components/VideoSetting/index.vue.mjs";
import "../../core/hooks/useAudioDeviceState/index.mjs";
import "../../core/hooks/useVideoDeviceState/index.mjs";
import "@tencentcloud/tuiroom-engine-js";
import "../../stores/room.mjs";
import "../../core/hooks/useUserState/useUserActions/useAudioAction.mjs";
import "../../core/hooks/useUserState/useUserActions/useChatAction.mjs";
import "../../core/hooks/useUserState/useUserActions/useVideoAction.mjs";
import "../../core/hooks/useUserState/useUserActions/useTransferOwnerAction.mjs";
import "../../core/hooks/useUserState/useUserActions/useChangeNameCardAction/index.mjs";
import "../../core/hooks/useUserState/useUserActions/useKickUserAction.mjs";
import "../../core/hooks/useUserState/useUserActions/useSeatAction.mjs";
import "../../core/hooks/useUserState/useUserActions/useAdminAction.mjs";
import { storeToRefs } from "pinia";
import "../../core/store/room.mjs";
import "../../hooks/useRoomEngine.mjs";
import "../../utils/environment.mjs";
import "../../core/manager/userEventManger.mjs";
import { MediaSettingDisplayMode } from "../../core/type/MediaDeviceSetting.mjs";
import { useI18n } from "../../locales/index.mjs";
import "../../hooks/useZIndex.mjs";
/* empty css */
import "../../core/hooks/useFreeBeautyState/index.mjs";
/* empty css */
/* empty css */
/* empty css */
import { useBasicStore } from "../../stores/basic.mjs";
/* empty css */
import "../../core/hooks/useUserState/useUserActions/useMemberInviteAction.mjs";
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
import "../../services/main.mjs";
import "../../services/roomService.mjs";
import "mitt";
import "../../services/manager/roomActionManager.mjs";
import "@tencentcloud/tui-core";
/* empty css */
/* empty css */
/* empty css */
import "../common/base/IconButton.vue2.mjs";
/* empty css */
/* empty css */
/* empty css */
/* empty css */
const _hoisted_1 = { class: "setting-container" };
const _hoisted_2 = { class: "setting-header" };
const _hoisted_3 = { class: "setting-title" };
const _hoisted_4 = { class: "setting-body" };
const _hoisted_5 = { class: "setting-tabs" };
const _hoisted_6 = ["onClick"];
const _hoisted_7 = { class: "setting-content" };
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "index",
setup(__props) {
const { t } = useI18n();
const basicStore = useBasicStore();
const { showSettingDialog, activeSettingTab } = storeToRefs(basicStore);
const settingTabsTitleList = computed(() => [
{ label: t("Audio settings"), value: "audio" },
{ label: t("Camera settings"), value: "video" }
]);
function handleUpdateActiveTab(tabTitle) {
basicStore.setActiveSettingTab(tabTitle);
}
function handleCloseSettingDialog() {
basicStore.setShowSettingDialog(false);
}
function handleOverlayClick(event) {
if (event.target !== event.currentTarget) {
return;
}
handleCloseSettingDialog();
}
return (_ctx, _cache) => {
return unref(showSettingDialog) ? (openBlock(), createElementBlock("div", {
key: 0,
class: "overlay-container overlay",
onClick: handleOverlayClick
}, [
createElementVNode("div", _hoisted_1, [
createElementVNode("div", _hoisted_2, [
createElementVNode("span", _hoisted_3, toDisplayString(unref(t)("Settings")), 1),
createVNode(unref(IconClose), {
class: "close-icon",
onClick: handleCloseSettingDialog
})
]),
createElementVNode("div", _hoisted_4, [
createElementVNode("div", _hoisted_5, [
(openBlock(true), createElementBlock(Fragment, null, renderList(settingTabsTitleList.value, (item, index) => {
return openBlock(), createElementBlock("div", {
key: index,
class: normalizeClass([
"tabs-title",
`${unref(activeSettingTab) === item.value ? "active" : ""}`
]),
onClick: ($event) => handleUpdateActiveTab(item.value)
}, toDisplayString(item.label), 11, _hoisted_6);
}), 128))
]),
_cache[0] || (_cache[0] = createElementVNode("div", { class: "divide-line" }, null, -1)),
createElementVNode("div", _hoisted_7, [
unref(activeSettingTab) === "audio" ? (openBlock(), createBlock(unref(_sfc_main$1), {
key: 0,
"display-mode": unref(MediaSettingDisplayMode).Panel,
class: "setting-tab"
}, null, 8, ["display-mode"])) : unref(activeSettingTab) === "video" ? (openBlock(), createBlock(unref(VideoSetting), {
key: 1,
"display-mode": unref(MediaSettingDisplayMode).Panel,
class: "setting-tab"
}, null, 8, ["display-mode"])) : createCommentVNode("", true)
])
])
])
])) : createCommentVNode("", true);
};
}
});
export {
_sfc_main as default
};