UNPKG

@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,

76 lines (75 loc) 2.53 kB
import { defineComponent, ref, computed, onMounted, onUnmounted, createElementBlock, createCommentVNode, unref, openBlock, createVNode, withCtx } from "vue"; import { IconFullScreen } from "@tencentcloud/uikit-base-component-vue3"; import IconButton from "../common/base/IconButton.vue.mjs"; import { exitFullScreen, setFullScreen } from "../../utils/utils.mjs"; import { useI18n } from "../../locales/index.mjs"; import "../../services/main.mjs"; import { roomService } from "../../services/roomService.mjs"; import "@tencentcloud/tuiroom-engine-js"; import "../../utils/environment.mjs"; import "mitt"; import "../../services/manager/roomActionManager.mjs"; import "@tencentcloud/tui-core"; const _hoisted_1 = { key: 0, class: "fullscreen-control-container" }; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "FullScreenControl", setup(__props) { const { t } = useI18n(); const fullScreenConfig = roomService.getComponentConfig("FullScreen"); const isFullScreen = ref(false); const title = computed( () => isFullScreen.value ? t("Exit") : t("Full screen") ); function toggleScreen() { if (isFullScreen.value) { exitFullScreen(); } else { const roomContainer = document.getElementById("roomContainer"); roomContainer && setFullScreen(roomContainer); } } function handleFullScreenChange() { isFullScreen.value = !!document.fullscreenElement; } onMounted(() => { [ "fullscreenchange", "webkitfullscreenchange", "mozfullscreenchange", "msfullscreenchange" ].forEach((item) => { window.addEventListener(item, handleFullScreenChange); }); }); onUnmounted(() => { [ "fullscreenchange", "webkitfullscreenchange", "mozfullscreenchange", "msfullscreenchange" ].forEach((item) => { window.removeEventListener(item, handleFullScreenChange); }); }); return (_ctx, _cache) => { return unref(fullScreenConfig).visible ? (openBlock(), createElementBlock("div", _hoisted_1, [ createVNode(IconButton, { "is-active": isFullScreen.value, title: title.value, onClickIcon: toggleScreen }, { default: withCtx(() => [ createVNode(unref(IconFullScreen), { size: "24" }) ]), _: 1 }, 8, ["is-active", "title"]) ])) : createCommentVNode("", true); }; } }); export { _sfc_main as default };