@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,
48 lines (47 loc) • 1.4 kB
JavaScript
import { defineStore } from "pinia";
const useChatStore = defineStore("chat", {
state: () => ({
messageList: [],
isMessageDisabled: false,
unReadCount: 0,
isCompleted: false,
nextReqMessageId: ""
}),
getters: {},
actions: {
updateMessageList(message) {
const messageIds = this.messageList.map((message2) => message2.ID);
if (messageIds.indexOf(message.ID) === -1) {
this.messageList = this.messageList.concat([message]);
}
},
setMessageListInfo(messageList, isCompleted, nextReqMessageId) {
this.messageList = messageList;
this.isCompleted = isCompleted;
this.nextReqMessageId = nextReqMessageId;
},
updateUnReadCount(count) {
this.unReadCount = count;
},
addHistoryMessages(messageList) {
const messageIds = this.messageList.map((message) => message.ID);
const filteredMessageList = messageList.filter(
(message) => messageIds.indexOf(message.ID) === -1
);
this.messageList = filteredMessageList.concat(this.messageList).sort(
(messageA, messageB) => messageA.sequence - messageB.sequence
);
},
setSendMessageDisableChanged(isDisable) {
this.isMessageDisabled = isDisable;
},
reset() {
this.messageList = [];
this.unReadCount = 0;
this.isMessageDisabled = false;
}
}
});
export {
useChatStore
};