Use cache flush timer per chatId

This commit is contained in:
Webifi 2023-06-17 09:36:20 -05:00
parent b0c1c8155c
commit 3ab605983d
1 changed files with 4 additions and 3 deletions

View File

@ -235,18 +235,19 @@
}, 10)
}
let setMessagesTimer: any
const setMessagesTimers: any = {}
export const setMessages = (chatId: number, messages: Message[]) => {
if (get(currentChatId) === chatId) {
// update current message cache right away
currentChatMessages.set(messages)
clearTimeout(setMessagesTimer)
clearTimeout(setMessagesTimers[chatId])
// delay expensive all chats update for a bit
setMessagesTimer = setTimeout(() => {
setMessagesTimers[chatId] = setTimeout(() => {
getChat(chatId).messages = messages
saveChatStore()
}, 200)
} else {
clearTimeout(setMessagesTimers[chatId])
getChat(chatId).messages = messages
saveChatStore()
}