@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,
69 lines (68 loc) • 2.59 kB
JavaScript
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const chatExtension = require("../chatExtension.js");
const judgeRoomMessage = require("../utils/judgeRoomMessage.js");
class HandleRoomMessage {
constructor() {
__publicField(this, "message", {});
__publicField(this, "messageData", {
isInnerRoom: false,
isRoomMessage: false,
isRoomCreateByMe: false,
isMessageFromMe: false,
roomId: "",
roomState: chatExtension.RoomState.CREATED,
userList: [],
myProfile: {},
ownerName: "",
owner: ""
});
}
initialize(message) {
this.handleMessage(message);
}
destroy() {
chatExtension.chatExtension.setHistoryMeetingMessageList("delete", {
ID: this.message.ID,
messageData: this.messageData
});
}
// Get card information
handleMessage(message) {
var _a;
this.message = message;
const currentUser = (_a = chatExtension.chatExtension.chatContext) == null ? void 0 : _a.userID;
const messagePayload = this.parseMessageData(message);
if (!judgeRoomMessage.getIsRoomCardMessage(message)) return;
const { businessID, owner, roomId, roomState, userList, ownerName } = messagePayload;
const isRoomDestroyed = roomState === chatExtension.RoomState.DESTROYED;
const isInnerRoom = chatExtension.chatExtension.getOnGoingRoomId() === roomId && userList.some((u) => u.userId === currentUser) && !isRoomDestroyed;
const isRoomCreateByMe = owner === currentUser;
if (isRoomCreateByMe && isInnerRoom && !isRoomDestroyed) {
chatExtension.chatExtension.setActiveMeetingMessage(message, messagePayload);
}
this.messageData = {
isInnerRoom,
isRoomMessage: businessID === "group_room_message",
isRoomCreateByMe,
isMessageFromMe: message.from === currentUser,
roomId,
roomState,
userList,
myProfile: chatExtension.chatExtension.myProfile,
ownerName,
owner
};
chatExtension.chatExtension.setHistoryMeetingMessageList("add", {
ID: message.ID,
messageData: this.messageData
});
}
parseMessageData(message) {
return chatExtension.chatExtension.parseMessageData(message);
}
}
exports.HandleRoomMessage = HandleRoomMessage;
;