@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,
68 lines (67 loc) • 2.76 kB
JavaScript
"use strict";
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const Vue = require("vue");
const uikitBaseComponentVue3 = require("@tencentcloud/uikit-base-component-vue3");
const message = require("../../../../../constants/message.js");
const useRoomEngine = require("../../../../../hooks/useRoomEngine.js");
const index = require("../../../../../locales/index.js");
const changeNameCardDialog = require("./changeNameCardDialog.vue.js");
const changeNameCardInput = require("./changeNameCardInput.vue.js");
const utils = require("../../../../../utils/utils.js");
const User = require("../../../../type/User.js");
const environment = require("../../../../../utils/environment.js");
const roomEngine = useRoomEngine.default();
const { t } = index.useI18n();
function useNameCardAction(userInfo) {
const nameCardCheck = (inputUserName) => {
const result = utils.calculateByteLength(inputUserName) <= 32;
!result && uikitBaseComponentVue3.TUIToast({
type: uikitBaseComponentVue3.TOAST_TYPE.WARNING,
message: t("The user name cannot exceed 32 characters"),
duration: message.MESSAGE_DURATION.NORMAL
});
return result;
};
async function handleChangeUserNameCard(inputUserName) {
var _a;
if (!nameCardCheck(inputUserName)) {
return Promise.reject("The user name cannot exceed 32 characters");
}
try {
await ((_a = roomEngine.instance) == null ? void 0 : _a.changeUserNameCard({
userId: userInfo.userId,
nameCard: inputUserName
}));
uikitBaseComponentVue3.TUIToast({
type: uikitBaseComponentVue3.TOAST_TYPE.SUCCESS,
message: t("Name changed successfully"),
duration: message.MESSAGE_DURATION.NORMAL
});
} catch (error) {
uikitBaseComponentVue3.TUIToast({
type: uikitBaseComponentVue3.TOAST_TYPE.ERROR,
message: t("change name failed, please try again."),
duration: 5e3
});
}
}
function renderChangeNameCardDialog() {
var _a;
const Component = environment.isMobile ? changeNameCardInput.default : changeNameCardDialog.default;
const vNode = Vue.h(Component, {
userInfo,
confirmFunction: handleChangeUserNameCard
});
const div = document.createElement("div");
Vue.render(vNode, div);
(_a = document.getElementById("roomContainer")) == null ? void 0 : _a.appendChild(div.childNodes[0]);
}
const changeUserNameCard = Vue.reactive({
key: User.UserAction.ChangeUserNameCardAction,
icon: Vue.markRaw(uikitBaseComponentVue3.IconEditNameCard),
label: t("change name"),
handler: renderChangeNameCardDialog
});
return changeUserNameCard;
}
exports.default = useNameCardAction;