@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,
42 lines (41 loc) • 1.71 kB
JavaScript
import { defineComponent, ref, watch, createElementBlock, openBlock, unref, createVNode, withDirectives, vShow } from "vue";
import MemberInfo from "../MemberItemCommon/MemberInfo.vue.mjs";
import MemberControl from "../MemberControl/index.mjs";
import useMemberItem from "./useMemberItemHooks.mjs";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "indexPC",
props: {
userInfo: {}
},
setup(__props) {
const props = __props;
const { isMemberControlAccessible, openMemberControl, closeMemberControl } = useMemberItem(props.userInfo);
const showMemberControl = ref(false);
watch(isMemberControlAccessible, (accessible) => {
showMemberControl.value = accessible;
});
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", {
class: "member-item-container",
onMouseenter: _cache[0] || (_cache[0] = //@ts-ignore
(...args) => unref(openMemberControl) && unref(openMemberControl)(...args)),
onMouseleave: _cache[1] || (_cache[1] = //@ts-ignore
(...args) => unref(closeMemberControl) && unref(closeMemberControl)(...args))
}, [
createVNode(MemberInfo, {
"user-info": props.userInfo,
"show-state-icon": props.userInfo.isInRoom && !showMemberControl.value
}, null, 8, ["user-info", "show-state-icon"]),
withDirectives(createVNode(unref(MemberControl), {
"show-member-control": showMemberControl.value,
"user-info": props.userInfo
}, null, 8, ["show-member-control", "user-info"]), [
[vShow, showMemberControl.value && props.userInfo.isInRoom]
])
], 32);
};
}
});
export {
_sfc_main as default
};