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,

111 lines (110 loc) 4.88 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const Vue = require("vue"); const index$1 = ;/* empty css */ const index$2 = ;/* empty css */ const index$3 = require("./UserAction/index.js"); require("../../../components/common/base/IconButton.vue2.js"); ;/* empty css */ require("@tencentcloud/uikit-base-component-vue3"); require("../../../stores/room.js"); require("pinia"); require("../../../utils/environment.js"); ;/* empty css */ require("../../../hooks/useZIndex.js"); const vClickOutside = require("../../../directives/vClickOutside.js"); require("../../../services/main.js"); require("../../../services/roomService.js"); require("../../../locales/index.js"); require("@tencentcloud/tuiroom-engine-js"); require("mitt"); require("../../../services/manager/roomActionManager.js"); require("@tencentcloud/tui-core"); ;/* empty css */ const vTap = require("../../../directives/vTap.js"); ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ require("../../hooks/useAudioDeviceState/index.js"); ;/* empty css */ ;/* empty css */ ;/* empty css */ require("../../../stores/basic.js"); ;/* empty css */ ;/* empty css */ ;/* empty css */ require("../../../hooks/useRoomEngine.js"); require("../../hooks/useVideoDeviceState/index.js"); ;/* empty css */ ;/* empty css */ const index = require("../../hooks/useUserState/index.js"); ;/* empty css */ require("../../hooks/useFreeBeautyState/index.js"); ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ ;/* empty css */ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({ __name: "indexH5", props: { userInfo: {} }, setup(__props) { const props = __props; const isMouseHover = Vue.ref(false); const memberItemContainerRef = Vue.ref(); const handleOpenMemberControl = () => { isMouseHover.value = true; }; const handleDocumentTouchend = (event) => { var _a; if ((_a = memberItemContainerRef.value) == null ? void 0 : _a.contains(event == null ? void 0 : event.target)) { return; } isMouseHover.value = false; }; const { useUserActions } = index.default(); const userActions = useUserActions({ userInfo: props.userInfo }); const showUserAction = Vue.computed( () => isMouseHover.value && props.userInfo.isInRoom && (userActions == null ? void 0 : userActions.length) > 0 ); return (_ctx, _cache) => { return Vue.withDirectives((Vue.openBlock(), Vue.createElementBlock("div", { class: "member-item-container", ref_key: "memberItemContainerRef", ref: memberItemContainerRef }, [ Vue.createVNode(index$1.default, { "user-info": props.userInfo, "show-state-icon": props.userInfo.isInRoom && !showUserAction.value }, null, 8, ["user-info", "show-state-icon"]), !_ctx.userInfo.isInRoom ? (Vue.openBlock(), Vue.createBlock(index$2.default, { key: 0, "user-info": props.userInfo }, null, 8, ["user-info"])) : Vue.createCommentVNode("", true), Vue.withDirectives(Vue.createVNode(Vue.unref(index$3.default), { "user-info": props.userInfo }, null, 8, ["user-info"]), [ [Vue.vShow, showUserAction.value] ]) ])), [ [Vue.unref(vTap.default), handleOpenMemberControl], [Vue.unref(vClickOutside.default), handleDocumentTouchend] ]); }; } }); exports.default = _sfc_main;