From eb2b1ab77b5e50b7b96ac2446e9bce7fc0e611b6 Mon Sep 17 00:00:00 2001
From: "Timothy J. Baek" <timothyjrbeck@gmail.com>
Date: Sat, 3 Feb 2024 17:21:51 -0800
Subject: [PATCH] feat: query all documents

---
 src/lib/components/chat/MessageInput.svelte   |  2 +-
 .../chat/MessageInput/Documents.svelte        | 39 ++++++++++++-------
 .../chat/Messages/UserMessage.svelte          |  2 +-
 .../components/documents/EditDocModal.svelte  |  2 +-
 4 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte
index 3ba51a6f8..20eab5b6f 100644
--- a/src/lib/components/chat/MessageInput.svelte
+++ b/src/lib/components/chat/MessageInput.svelte
@@ -468,7 +468,7 @@
 
 											<div class="flex flex-col justify-center -space-y-0.5">
 												<div class=" dark:text-gray-100 text-sm font-medium line-clamp-1">
-													#{file.name}
+													{file?.title ?? `#${file.name}`}
 												</div>
 
 												<div class=" text-gray-500 text-sm">Collection</div>
diff --git a/src/lib/components/chat/MessageInput/Documents.svelte b/src/lib/components/chat/MessageInput/Documents.svelte
index 6cc7bf4dc..0219a111d 100644
--- a/src/lib/components/chat/MessageInput/Documents.svelte
+++ b/src/lib/components/chat/MessageInput/Documents.svelte
@@ -13,34 +13,43 @@
 
 	let filteredItems = [];
 	let filteredDocs = [];
-	let filteredTags = [];
 
 	let collections = [];
 
-	$: collections = $documents
-		.reduce((a, e, i, arr) => {
-			return [...new Set([...a, ...(e?.content?.tags ?? []).map((tag) => tag.name)])];
-		}, [])
-		.map((tag) => ({
-			name: tag,
+	$: collections = [
+		{
+			name: 'All Documents',
 			type: 'collection',
-			collection_names: $documents
-				.filter((doc) => (doc?.content?.tags ?? []).map((tag) => tag.name).includes(tag))
-				.map((doc) => doc.collection_name)
-		}));
+			title: 'All Documents',
+			collection_names: $documents.map((doc) => doc.collection_name)
+		},
+		...$documents
+			.reduce((a, e, i, arr) => {
+				return [...new Set([...a, ...(e?.content?.tags ?? []).map((tag) => tag.name)])];
+			}, [])
+			.map((tag) => ({
+				name: tag,
+				type: 'collection',
+				collection_names: $documents
+					.filter((doc) => (doc?.content?.tags ?? []).map((tag) => tag.name).includes(tag))
+					.map((doc) => doc.collection_name)
+			}))
+	];
 
 	$: filteredCollections = collections
-		.filter((tag) => tag.name.includes(prompt.split(' ')?.at(0)?.substring(1) ?? ''))
+		.filter((collection) => collection.name.includes(prompt.split(' ')?.at(0)?.substring(1) ?? ''))
 		.sort((a, b) => a.name.localeCompare(b.name));
 
 	$: filteredDocs = $documents
-		.filter((p) => p.name.includes(prompt.split(' ')?.at(0)?.substring(1) ?? ''))
+		.filter((doc) => doc.name.includes(prompt.split(' ')?.at(0)?.substring(1) ?? ''))
 		.sort((a, b) => a.title.localeCompare(b.title));
 
 	$: filteredItems = [...filteredCollections, ...filteredDocs];
 
 	$: if (prompt) {
 		selectedIdx = 0;
+
+		console.log(filteredCollections);
 	}
 
 	export const selectUp = () => {
@@ -74,7 +83,7 @@
 	};
 </script>
 
-{#if filteredDocs.length > 0 || prompt.split(' ')?.at(0)?.substring(1).startsWith('http')}
+{#if filteredItems.length > 0 || prompt.split(' ')?.at(0)?.substring(1).startsWith('http')}
 	<div class="md:px-2 mb-3 text-left w-full">
 		<div class="flex w-full rounded-lg border border-gray-100 dark:border-gray-700">
 			<div class=" bg-gray-100 dark:bg-gray-700 w-10 rounded-l-lg text-center">
@@ -101,7 +110,7 @@
 						>
 							{#if doc.type === 'collection'}
 								<div class=" font-medium text-black line-clamp-1">
-									#{doc.name}
+									{doc?.title ?? `#${doc.name}`}
 								</div>
 
 								<div class=" text-xs text-gray-600 line-clamp-1">Collection</div>
diff --git a/src/lib/components/chat/Messages/UserMessage.svelte b/src/lib/components/chat/Messages/UserMessage.svelte
index 0e0fc332f..c2867d549 100644
--- a/src/lib/components/chat/Messages/UserMessage.svelte
+++ b/src/lib/components/chat/Messages/UserMessage.svelte
@@ -140,7 +140,7 @@
 
 									<div class="flex flex-col justify-center -space-y-0.5">
 										<div class=" dark:text-gray-100 text-sm font-medium line-clamp-1">
-											#{file.name}
+											{file?.title ?? `#${file.name}`}
 										</div>
 
 										<div class=" text-gray-500 text-sm">Collection</div>
diff --git a/src/lib/components/documents/EditDocModal.svelte b/src/lib/components/documents/EditDocModal.svelte
index 43b90e021..4974da5a1 100644
--- a/src/lib/components/documents/EditDocModal.svelte
+++ b/src/lib/components/documents/EditDocModal.svelte
@@ -37,7 +37,7 @@
 	};
 
 	const addTagHandler = async (tagName) => {
-		if (!tags.find((tag) => tag.name === tagName)) {
+		if (!tags.find((tag) => tag.name === tagName) && tagName !== '') {
 			tags = [...tags, { name: tagName }];
 
 			await tagDocByName(localStorage.token, doc.name, {