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