From 83fd00c16ef19a70b7d6a681300a056b5ba0c8f9 Mon Sep 17 00:00:00 2001 From: Webifi Date: Sat, 24 Jun 2023 16:56:03 -0500 Subject: [PATCH] Fix last updated sort --- src/lib/Sidebar.svelte | 5 +++-- src/lib/Storage.svelte | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/lib/Sidebar.svelte b/src/lib/Sidebar.svelte index b7ffd56..be7749f 100644 --- a/src/lib/Sidebar.svelte +++ b/src/lib/Sidebar.svelte @@ -18,7 +18,6 @@ const onStateChange = (...args:any) => { sortOption = getChatSortOption() sortedChats = $chatsStorage.sort(sortOption.sortFn) - // console.log('Sorting', sortOption, sortedChats) } $: onStateChange($checkStateChange) @@ -43,8 +42,10 @@
  • No chats yet...
  • {:else} {#key $checkStateChange} - {#each sortedChats as chat, i} + {#each sortedChats as chat, i} + {#key chat.id} + {/key} {/each} {/key} {/if} diff --git a/src/lib/Storage.svelte b/src/lib/Storage.svelte index 9803f7a..ce038b7 100644 --- a/src/lib/Storage.svelte +++ b/src/lib/Storage.svelte @@ -242,6 +242,15 @@ currentChatMessages.set(getChat(chatId).messages) }, 10) } + + const signalChangeTimers: any = {} + const setChatLastUse = (chatId: number, time: number) => { + clearTimeout(signalChangeTimers[chatId]) + signalChangeTimers[chatId] = setTimeout(() => { + getChat(chatId).lastUse = time + saveChatStore() + }, 500) + } const setMessagesTimers: any = {} export const setMessages = (chatId: number, messages: Message[]) => { @@ -253,13 +262,13 @@ setMessagesTimers[chatId] = setTimeout(() => { getChat(chatId).messages = messages saveChatStore() + setChatLastUse(chatId, Date.now()) }, 200) } else { clearTimeout(setMessagesTimers[chatId]) - const chat = getChat(chatId) - chat.lastUse = Date.now() - chat.messages = messages + getChat(chatId).messages = messages saveChatStore() + setChatLastUse(chatId, Date.now()) } }