diff --git a/src/lib/Chat.svelte b/src/lib/Chat.svelte index c1b832f..89c975c 100644 --- a/src/lib/Chat.svelte +++ b/src/lib/Chat.svelte @@ -10,11 +10,10 @@ submitExitingPromptsNow, continueMessage, getMessage, + currentChatMessages, + setCurrentChat, - currentChatId, - - currentChatMessages - + currentChatId } from './Storage.svelte' import { @@ -99,6 +98,7 @@ $: onStateChange($checkStateChange, $showSetChatSettings, $submitExitingPromptsNow, $continueMessage) + setCurrentChat(0) // Make sure chat object is ready to go updateChatSettings(chatId) @@ -112,8 +112,7 @@ onMount(async () => { if (!chat) return - $currentChatId = chatId - $currentChatMessages = chat.messages + setCurrentChat(chatId) chatRequest = new ChatRequest() chatRequest.setChat(chat) @@ -355,9 +354,9 @@ - + -{#if chatRequest.updating === true} +{#if chatRequest.updating === true || $currentChatId === 0}
@@ -366,7 +365,7 @@
{/if} -{#if $currentChatMessages.length === 0 || ($currentChatMessages.length === 1 && $currentChatMessages[0].role === 'system')} +{#if $currentChatId !== 0 && ($currentChatMessages.length === 0 || ($currentChatMessages.length === 1 && $currentChatMessages[0].role === 'system'))} {/if} diff --git a/src/lib/EditMessage.svelte b/src/lib/EditMessage.svelte index 188502b..58b45ae 100644 --- a/src/lib/EditMessage.svelte +++ b/src/lib/EditMessage.svelte @@ -1,7 +1,7 @@ {#each messages as message, i} {#if !((message.summarized) && $globalStorage.hideSummarized) && !(i === 0 && message.role === 'system' && !chatSettings.useSystemPrompt)} - {#key message.uuid}{/key} + {/if} {/each} diff --git a/src/lib/Storage.svelte b/src/lib/Storage.svelte index 9e92a1e..4386a34 100644 --- a/src/lib/Storage.svelte +++ b/src/lib/Storage.svelte @@ -222,6 +222,19 @@ return getChat(chatId).messages } + let setChatTimer: any + export const setCurrentChat = (chatId: number) => { + clearTimeout(setChatTimer) + if (!chatId) { + currentChatId.set(0) + currentChatMessages.set([]) + } + setChatTimer = setTimeout(() => { + currentChatId.set(chatId) + currentChatMessages.set(getChat(chatId).messages) + }, 10) + } + let setMessagesTimer: any export const setMessages = (chatId: number, messages: Message[]) => { if (get(currentChatId) === chatId) {