@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
JavaScript
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
};