Timothy Jaeryang Baek 2 kuukautta sitten
vanhempi
commit
c5636ff68c

+ 9 - 1
src/lib/components/chat/MessageInput/Commands/Knowledge.svelte

@@ -154,6 +154,14 @@
 			keys: ['name', 'description']
 		});
 	});
+
+	const decodeString = (str: string) => {
+		try {
+			return decodeURIComponent(str);
+		} catch (e) {
+			return str;
+		}
+	};
 </script>
 
 {#if filteredItems.length > 0 || prompt.split(' ')?.at(0)?.substring(1).startsWith('http')}
@@ -210,7 +218,7 @@
 									{/if}
 
 									<div class="line-clamp-1">
-										{decodeURIComponent(item?.name)}
+										{decodeString(item?.name)}
 									</div>
 								</div>
 

+ 11 - 3
src/lib/components/chat/Messages/Citations.svelte

@@ -87,6 +87,14 @@
 		showRelevance = calculateShowRelevance(citations);
 		showPercentage = shouldShowPercentage(citations);
 	}
+
+	const decodeString = (str: string) => {
+		try {
+			return decodeURIComponent(str);
+		} catch (e) {
+			return str;
+		}
+	};
 </script>
 
 <CitationsModal
@@ -117,7 +125,7 @@
 						<div
 							class="flex-1 mx-1 truncate text-black/60 hover:text-black dark:text-white/60 dark:hover:text-white transition"
 						>
-							{decodeURIComponent(citation.source.name)}
+							{decodeString(citation.source.name)}
 						</div>
 					</button>
 				{/each}
@@ -157,7 +165,7 @@
 											</div>
 										{/if}
 										<div class="flex-1 mx-1 truncate">
-											{decodeURIComponent(citation.source.name)}
+											{decodeString(citation.source.name)}
 										</div>
 									</button>
 								{/each}
@@ -194,7 +202,7 @@
 									</div>
 								{/if}
 								<div class="flex-1 mx-1 truncate">
-									{decodeURIComponent(citation.source.name)}
+									{decodeString(citation.source.name)}
 								</div>
 							</button>
 						{/each}

+ 9 - 1
src/lib/components/chat/Messages/CitationsModal.svelte

@@ -45,6 +45,14 @@
 			);
 		}
 	}
+
+	const decodeString = (str: string) => {
+		try {
+			return decodeURIComponent(str);
+		} catch (e) {
+			return str;
+		}
+	};
 </script>
 
 <Modal size="lg" bind:show>
@@ -99,7 +107,7 @@
 												: `#`}
 										target="_blank"
 									>
-										{decodeURIComponent(document?.metadata?.name ?? document.source.name)}
+										{decodeString(document?.metadata?.name ?? document.source.name)}
 									</a>
 									{#if document?.metadata?.page}
 										<span class="text-xs text-gray-500 dark:text-gray-400">

+ 11 - 7
src/lib/components/common/FileItem.svelte

@@ -28,6 +28,14 @@
 	import { deleteFileById } from '$lib/apis/files';
 
 	let showModal = false;
+
+	const decodeString = (str: string) => {
+		try {
+			return decodeURIComponent(str);
+		} catch (e) {
+			return str;
+		}
+	};
 </script>
 
 {#if item}
@@ -82,7 +90,7 @@
 	{#if !small}
 		<div class="flex flex-col justify-center -space-y-0.5 px-2.5 w-full">
 			<div class=" dark:text-gray-100 text-sm font-medium line-clamp-1 mb-1">
-				{decodeURIComponent(name)}
+				{decodeString(name)}
 			</div>
 
 			<div class=" flex justify-between text-gray-500 text-xs line-clamp-1">
@@ -101,11 +109,7 @@
 			</div>
 		</div>
 	{:else}
-		<Tooltip
-			content={decodeURIComponent(name)}
-			className="flex flex-col w-full"
-			placement="top-start"
-		>
+		<Tooltip content={decodeString(name)} className="flex flex-col w-full" placement="top-start">
 			<div class="flex flex-col justify-center -space-y-0.5 px-2.5 w-full">
 				<div class=" dark:text-gray-100 text-sm flex justify-between items-center">
 					{#if loading}
@@ -113,7 +117,7 @@
 							<Spinner className="size-4" />
 						</div>
 					{/if}
-					<div class="font-medium line-clamp-1 flex-1">{decodeURIComponent(name)}</div>
+					<div class="font-medium line-clamp-1 flex-1">{decodeString(name)}</div>
 					<div class="text-gray-500 text-xs capitalize shrink-0">{formatFileSize(size)}</div>
 				</div>
 			</div>

+ 9 - 1
src/lib/components/workspace/Knowledge/KnowledgeBase.svelte

@@ -547,6 +547,14 @@
 		dropZone?.removeEventListener('drop', onDrop);
 		dropZone?.removeEventListener('dragleave', onDragLeave);
 	});
+
+	const decodeString = (str: string) => {
+		try {
+			return decodeURIComponent(str);
+		} catch (e) {
+			return str;
+		}
+	};
 </script>
 
 {#if dragged}
@@ -698,7 +706,7 @@
 										href={selectedFile.id ? `/api/v1/files/${selectedFile.id}/content` : '#'}
 										target="_blank"
 									>
-										{decodeURIComponent(selectedFile?.meta?.name)}
+										{decodeString(selectedFile?.meta?.name)}
 									</a>
 								</div>