@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,
59 lines (58 loc) • 2.51 kB
JavaScript
"use strict";
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const TUIRoomEngine = require("@tencentcloud/tuiroom-engine-js");
const Room = require("../../../type/Room.js");
const index = require("../../../../locales/index.js");
const room = require("../../../../stores/room.js");
const index$1 = require("../../../../components/common/base/MessageBox/index.js");
const uikitBaseComponentVue3 = require("@tencentcloud/uikit-base-component-vue3");
const useRoomEngine = require("../../../../hooks/useRoomEngine.js");
const message = require("../../../../constants/message.js");
const Vue = require("vue");
function useRoomAudioAction() {
const { t } = index.useI18n();
const roomStore = room.useRoomStore();
const roomEngine = useRoomEngine.default();
let stateForAllAudio = false;
function toggleRoomAudio() {
stateForAllAudio = !roomStore.isMicrophoneDisableForAllUser;
index$1.default({
title: roomStore.isMicrophoneDisableForAllUser ? t("Enable all audios") : t("All current and new members will be muted"),
message: roomStore.isMicrophoneDisableForAllUser ? t("After unlocking, users can freely turn on the microphone") : t("Members will not be able to open the microphone"),
confirmButtonText: t("Confirm"),
cancelButtonText: t("Cancel"),
callback: async (action) => {
if (action === "confirm") {
doToggleRoomAudio();
}
}
});
}
async function doToggleRoomAudio() {
var _a;
if (roomStore.isMicrophoneDisableForAllUser === stateForAllAudio) {
const tipMessage = stateForAllAudio ? t("All audios disabled") : t("All audios enabled");
uikitBaseComponentVue3.TUIToast({
type: uikitBaseComponentVue3.TOAST_TYPE.SUCCESS,
message: tipMessage,
duration: message.MESSAGE_DURATION.NORMAL
});
return;
}
await ((_a = roomEngine.instance) == null ? void 0 : _a.disableDeviceForAllUserByAdmin({
isDisable: stateForAllAudio,
device: TUIRoomEngine.TUIMediaDevice.kMicrophone
}));
roomStore.setDisableMicrophoneForAllUserByAdmin(stateForAllAudio);
}
const roomAudioAction = Vue.reactive({
key: Room.RoomAction.AudioAction,
icon: Vue.defineComponent({}),
label: Vue.computed(
() => roomStore.isMicrophoneDisableForAllUser ? t("Lift all mute") : t("All mute")
),
handler: toggleRoomAudio
});
return roomAudioAction;
}
exports.default = useRoomAudioAction;