@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,
39 lines (38 loc) • 1.25 kB
JavaScript
import { reactive, computed, markRaw } from "vue";
import { IconChatForbidden, TUIToast, TOAST_TYPE } from "@tencentcloud/uikit-base-component-vue3";
import { MESSAGE_DURATION } from "../../../../constants/message.mjs";
import useRoomEngine from "../../../../hooks/useRoomEngine.mjs";
import { useI18n } from "../../../../locales/index.mjs";
import { UserAction } from "../../../type/User.mjs";
const roomEngine = useRoomEngine();
const { t } = useI18n();
function useChatAction(userInfo) {
async function disableUserChat() {
var _a;
const { isMessageDisabled } = userInfo;
try {
await ((_a = roomEngine.instance) == null ? void 0 : _a.disableSendingMessageByAdmin({
userId: userInfo.userId,
isDisable: !isMessageDisabled
}));
} catch (error) {
TUIToast({
type: TOAST_TYPE.ERROR,
message: t("Failed to disable chat"),
duration: MESSAGE_DURATION.NORMAL
});
}
}
const chatControl = reactive({
key: UserAction.ChatAction,
icon: markRaw(IconChatForbidden),
label: computed(
() => userInfo.isMessageDisabled ? t("Enable chat") : t("Disable chat")
),
handler: disableUserChat
});
return chatControl;
}
export {
useChatAction as default
};