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