From 241e955d12a305c3d955d50ae9bdfe00806f6dc4 Mon Sep 17 00:00:00 2001 From: xinyan Date: Fri, 5 Dec 2025 14:50:56 +0800 Subject: [PATCH] modified: src/lib/components/layout/ImportChatsModal.svelte --- .../components/layout/ImportChatsModal.svelte | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/lib/components/layout/ImportChatsModal.svelte b/src/lib/components/layout/ImportChatsModal.svelte index c6209a305a..9afa98c2ee 100644 --- a/src/lib/components/layout/ImportChatsModal.svelte +++ b/src/lib/components/layout/ImportChatsModal.svelte @@ -46,7 +46,7 @@ fileName = file.name; try { const ext = file.name.split('.').pop()?.toLowerCase(); - let chats = null; + let chats: any = null; if (ext === 'txt') { chats = await parseTxtAsJson(file); @@ -55,11 +55,7 @@ } if (getImportOrigin(chats) === 'openai') { - try { - chats = convertOpenAIChats(chats); - } catch (error) { - throw new Error('Failed to convert OpenAI chats'); - } + chats = convertOpenAIChats(chats); } if (!Array.isArray(chats)) { @@ -141,6 +137,16 @@ }); let fileInputEl: HTMLInputElement; + + const handleFileInputChange = (event: Event) => { + const input = event.currentTarget as HTMLInputElement; + handleFiles(input.files ?? []); + }; + + const handleSelectAllChange = (event: Event) => { + const input = event.currentTarget as HTMLInputElement; + toggleSelectAll(input.checked); + }; @@ -231,7 +237,7 @@ type="file" accept=".json,.zip,.txt,application/json" hidden - on:change={(e) => handleFiles((e.currentTarget as HTMLInputElement).files)} + on:change={handleFileInputChange} /> @@ -248,7 +254,7 @@ class="accent-blue-600" checked={rawChats.length > 0 && selectedIndices.size === rawChats.length} indeterminate={selectedIndices.size > 0 && selectedIndices.size < rawChats.length} - on:change={(e) => toggleSelectAll((e.currentTarget as HTMLInputElement).checked)} + on:change={handleSelectAllChange} /> 全选 / 取消全选