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,

41 lines (40 loc) 2.11 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const Vue = require("vue"); const TUIRoomEngine = require("@tencentcloud/tuiroom-engine-js"); const uikitBaseComponentVue3 = require("@tencentcloud/uikit-base-component-vue3"); const useRoomEngine = require("../../../../hooks/useRoomEngine.js"); const index = require("../../../../locales/index.js"); const User = require("../../../type/User.js"); const roomEngine = useRoomEngine.default(); const { t } = index.useI18n(); function useAdminAction(userInfo) { async function handleSetOrRevokeAdmin() { var _a, _b; const newRole = userInfo.userRole === TUIRoomEngine.TUIRole.kGeneralUser ? TUIRoomEngine.TUIRole.kAdministrator : TUIRoomEngine.TUIRole.kGeneralUser; await ((_a = roomEngine.instance) == null ? void 0 : _a.changeUserRole({ userId: userInfo.userId, userRole: newRole })); const tipMessage = newRole === TUIRoomEngine.TUIRole.kAdministrator ? `${t("sb has been set as administrator", { name: userInfo.displayName })}` : `${t("The administrator status of sb has been withdrawn", { name: userInfo.displayName })}`; uikitBaseComponentVue3.TUIToast({ type: uikitBaseComponentVue3.TOAST_TYPE.SUCCESS, message: tipMessage }); if (newRole === TUIRoomEngine.TUIRole.kGeneralUser && userInfo.hasScreenStream) { await ((_b = roomEngine.instance) == null ? void 0 : _b.closeRemoteDeviceByAdmin({ userId: userInfo.userId, device: TUIRoomEngine.TUIMediaDevice.kScreen })); } } const setOrRevokeAdmin = Vue.reactive({ key: User.UserAction.AdministratorAction, icon: Vue.computed( () => userInfo.userRole === TUIRoomEngine.TUIRole.kAdministrator ? uikitBaseComponentVue3.IconRevokeAdmin : uikitBaseComponentVue3.IconSetAdmin ), label: Vue.computed( () => userInfo.userRole === TUIRoomEngine.TUIRole.kAdministrator ? t("Remove administrator") : t("Set as administrator") ), handler: handleSetOrRevokeAdmin }); return setOrRevokeAdmin; } exports.default = useAdminAction;