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,

37 lines (36 loc) 1.48 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const Vue = require("vue"); const room = require("../../../stores/room.js"); const pinia = require("pinia"); const TUIRoomEngine = require("@tencentcloud/tuiroom-engine-js"); const showUserId = Vue.ref(""); function useMemberItem(userInfo) { const roomStore = room.useRoomStore(); const { isMaster, isAdmin } = pinia.storeToRefs(roomStore); const isCanOperateCurrentMember = Vue.computed(() => { const isTargetUserRoomOwner = userInfo.userRole === TUIRoomEngine.TUIRole.kRoomOwner; const isTargetUserGeneral = userInfo.userRole === TUIRoomEngine.TUIRole.kGeneralUser; const isTargetUserMySelf = userInfo.userId === roomStore.localUser.userId; return isMaster.value && !isTargetUserRoomOwner || isAdmin.value && isTargetUserGeneral || isTargetUserMySelf; }); const isCanOperateMySelf = Vue.computed(() => { return userInfo.userId === roomStore.localUser.userId; }); const isMemberControlAccessible = Vue.computed( () => userInfo.userId === showUserId.value && (isCanOperateMySelf.value || isCanOperateCurrentMember.value) ); function openMemberControl() { showUserId.value = userInfo.userId; } function closeMemberControl() { showUserId.value = ""; } return { isMemberControlAccessible, openMemberControl, closeMemberControl, isCanOperateMySelf }; } exports.default = useMemberItem;