diff --git a/src/lib/apis/files/index.ts b/src/lib/apis/files/index.ts index 633d048932..d2651e030f 100644 --- a/src/lib/apis/files/index.ts +++ b/src/lib/apis/files/index.ts @@ -6,7 +6,8 @@ export const uploadFile = async ( file: File, metadata?: object | null, process?: boolean | null, - stream: boolean = true + stream: boolean = true, + onUploaded?: (uploadedFile: { id: string }) => void ) => { const data = new FormData(); data.append('file', file); @@ -43,6 +44,10 @@ export const uploadFile = async ( throw error; } + if (res) { + onUploaded?.(res); + } + if (res && stream) { const status = await getFileProcessStatus(token, res.id); diff --git a/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte b/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte index 4c4d17421f..8cede075ed 100644 --- a/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte +++ b/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte @@ -285,19 +285,29 @@ : {}) }; - const uploadedFile = await uploadFile(localStorage.token, file, metadata).catch((e) => { + const uploadedFile = await uploadFile( + localStorage.token, + file, + metadata, + null, + true, + ({ id }: { id: string }) => { + fileItems = fileItems.map((item) => { + if (item.itemId === fileItem.itemId) { + item.id = id; + item.status = 'processing'; + } + return item; + }); + init(); + } + ).catch((e) => { toast.error(`${e}`); return null; }); if (uploadedFile) { console.log(uploadedFile); - fileItems = fileItems.map((item) => { - if (item.itemId === fileItem.itemId) { - item.id = uploadedFile.id; - } - return item; - }); if (uploadedFile.error) { console.warn('File upload warning:', uploadedFile.error);