Use cache flush timer per chatId
This commit is contained in:
		
							parent
							
								
									b0c1c8155c
								
							
						
					
					
						commit
						3ab605983d
					
				| 
						 | 
				
			
			@ -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()
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue