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