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