From 88a296b989f5104eab2218945c2819c42e50a566 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 23 May 2025 23:52:10 +0400 Subject: [PATCH] refac: chat reset input behaviour --- src/lib/components/chat/Chat.svelte | 40 +++++++++++++++++------------ 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 7cd77c30c..787e046da 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -195,15 +195,27 @@ console.log('saveSessionSelectedModels', selectedModels, sessionStorage.selectedModels); }; - $: if (selectedModels) { - setToolIds(); - setFilterIds(); + let oldSelectedModelIds = ['']; + $: if (JSON.stringify(selectedModelIds) !== JSON.stringify(oldSelectedModelIds)) { + onSelectedModelIdsChange(); } - $: if (atSelectedModel || selectedModels) { + const onSelectedModelIdsChange = () => { + if (oldSelectedModelIds.filter((id) => id).length > 0) { + resetInput(); + } + oldSelectedModelIds = selectedModelIds; + }; + + const resetInput = () => { + console.debug('resetInput'); setToolIds(); - setFilterIds(); - } + + selectedFilterIds = []; + webSearchEnabled = false; + imageGenerationEnabled = false; + codeInterpreterEnabled = false; + }; const setToolIds = async () => { if (!$tools) { @@ -215,20 +227,14 @@ } const model = atSelectedModel ?? $models.find((m) => m.id === selectedModels[0]); - if (model) { + if (model && model?.info?.meta?.toolIds) { selectedToolIds = [ ...new Set( - [...selectedToolIds, ...(model?.info?.meta?.toolIds ?? [])].filter((id) => - $tools.find((t) => t.id === id) - ) + [...(model?.info?.meta?.toolIds ?? [])].filter((id) => $tools.find((t) => t.id === id)) ) ]; - } - }; - - const setFilterIds = async () => { - if (selectedModels.length !== 1 && !atSelectedModel) { - selectedFilterIds = []; + } else { + selectedToolIds = []; } }; @@ -846,6 +852,8 @@ (chatContent?.models ?? undefined) !== undefined ? chatContent.models : [chatContent.models ?? '']; + oldSelectedModelIds = selectedModels; + history = (chatContent?.history ?? undefined) !== undefined ? chatContent.history