Browse Source

refac: chat reset input behaviour

Timothy Jaeryang Baek 4 months ago
parent
commit
88a296b989
1 changed files with 24 additions and 16 deletions
  1. 24 16
      src/lib/components/chat/Chat.svelte

+ 24 - 16
src/lib/components/chat/Chat.svelte

@@ -195,15 +195,27 @@
 		console.log('saveSessionSelectedModels', selectedModels, sessionStorage.selectedModels);
 		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();
 		setToolIds();
-		setFilterIds();
-	}
+
+		selectedFilterIds = [];
+		webSearchEnabled = false;
+		imageGenerationEnabled = false;
+		codeInterpreterEnabled = false;
+	};
 
 
 	const setToolIds = async () => {
 	const setToolIds = async () => {
 		if (!$tools) {
 		if (!$tools) {
@@ -215,20 +227,14 @@
 		}
 		}
 
 
 		const model = atSelectedModel ?? $models.find((m) => m.id === selectedModels[0]);
 		const model = atSelectedModel ?? $models.find((m) => m.id === selectedModels[0]);
-		if (model) {
+		if (model && model?.info?.meta?.toolIds) {
 			selectedToolIds = [
 			selectedToolIds = [
 				...new Set(
 				...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 ?? undefined) !== undefined
 						? chatContent.models
 						? chatContent.models
 						: [chatContent.models ?? ''];
 						: [chatContent.models ?? ''];
+				oldSelectedModelIds = selectedModels;
+
 				history =
 				history =
 					(chatContent?.history ?? undefined) !== undefined
 					(chatContent?.history ?? undefined) !== undefined
 						? chatContent.history
 						? chatContent.history