UNPKG

@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
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 };