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