make sure processing files stay in table
This commit is contained in:
parent
5a2e1b9f6f
commit
a3ce3d5c08
3 changed files with 39 additions and 28 deletions
|
|
@ -97,20 +97,14 @@ function SearchPage() {
|
||||||
taskFilesAsFiles.map((file) => [file.filename, file]),
|
taskFilesAsFiles.map((file) => [file.filename, file]),
|
||||||
);
|
);
|
||||||
// Override backend files with task file status if they exist
|
// Override backend files with task file status if they exist
|
||||||
const backendFiles = (searchData as File[])
|
const backendFiles = (searchData as File[]).map((file) => {
|
||||||
.map((file) => {
|
const taskFile = taskFileMap.get(file.filename);
|
||||||
const taskFile = taskFileMap.get(file.filename);
|
if (taskFile) {
|
||||||
if (taskFile) {
|
// Override backend file with task file data (includes status)
|
||||||
// Override backend file with task file data (includes status)
|
return { ...file, ...taskFile };
|
||||||
return { ...file, ...taskFile };
|
}
|
||||||
}
|
return file;
|
||||||
return file;
|
});
|
||||||
})
|
|
||||||
.filter((file) => {
|
|
||||||
// Only filter out files that are currently processing AND in taskFiles
|
|
||||||
const taskFile = taskFileMap.get(file.filename);
|
|
||||||
return !taskFile || taskFile.status !== "processing";
|
|
||||||
});
|
|
||||||
|
|
||||||
const filteredTaskFiles = taskFilesAsFiles.filter((taskFile) => {
|
const filteredTaskFiles = taskFilesAsFiles.filter((taskFile) => {
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -256,15 +256,18 @@ export function KnowledgeDropdown() {
|
||||||
".rtf",
|
".rtf",
|
||||||
".odt",
|
".odt",
|
||||||
];
|
];
|
||||||
|
|
||||||
const filteredFiles = fileList.filter((file) => {
|
const filteredFiles = fileList.filter((file) => {
|
||||||
const ext = file.name.substring(file.name.lastIndexOf(".")).toLowerCase();
|
const ext = file.name
|
||||||
|
.substring(file.name.lastIndexOf("."))
|
||||||
|
.toLowerCase();
|
||||||
return supportedExtensions.includes(ext);
|
return supportedExtensions.includes(ext);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (filteredFiles.length === 0) {
|
if (filteredFiles.length === 0) {
|
||||||
toast.error("No supported files found", {
|
toast.error("No supported files found", {
|
||||||
description: "Please select a folder containing PDF, DOC, DOCX, TXT, MD, RTF, or ODT files.",
|
description:
|
||||||
|
"Please select a folder containing PDF, DOC, DOCX, TXT, MD, RTF, or ODT files.",
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -274,21 +277,28 @@ export function KnowledgeDropdown() {
|
||||||
for (const originalFile of filteredFiles) {
|
for (const originalFile of filteredFiles) {
|
||||||
try {
|
try {
|
||||||
// Extract just the filename without the folder path
|
// Extract just the filename without the folder path
|
||||||
const fileName = originalFile.name.split('/').pop() || originalFile.name;
|
const fileName =
|
||||||
console.log(`[Folder Upload] Processing file: ${originalFile.name} -> ${fileName}`);
|
originalFile.name.split("/").pop() || originalFile.name;
|
||||||
|
console.log(
|
||||||
|
`[Folder Upload] Processing file: ${originalFile.name} -> ${fileName}`,
|
||||||
|
);
|
||||||
|
|
||||||
// Create a new File object with just the basename (no folder path)
|
// Create a new File object with just the basename (no folder path)
|
||||||
// This is necessary because the webkitRelativePath includes the folder name
|
// This is necessary because the webkitRelativePath includes the folder name
|
||||||
const file = new File([originalFile], fileName, {
|
const file = new File([originalFile], fileName, {
|
||||||
type: originalFile.type,
|
type: originalFile.type,
|
||||||
lastModified: originalFile.lastModified
|
lastModified: originalFile.lastModified,
|
||||||
});
|
});
|
||||||
console.log(`[Folder Upload] Created new File object:`, { name: file.name, type: file.type, size: file.size });
|
console.log(`[Folder Upload] Created new File object:`, {
|
||||||
|
name: file.name,
|
||||||
|
type: file.type,
|
||||||
|
size: file.size,
|
||||||
|
});
|
||||||
|
|
||||||
// Check for duplicates using the clean filename
|
// Check for duplicates using the clean filename
|
||||||
const checkData = await duplicateCheck(file);
|
const checkData = await duplicateCheck(file);
|
||||||
console.log(`[Folder Upload] Duplicate check result:`, checkData);
|
console.log(`[Folder Upload] Duplicate check result:`, checkData);
|
||||||
|
|
||||||
if (!checkData.exists) {
|
if (!checkData.exists) {
|
||||||
console.log(`[Folder Upload] Uploading file: ${fileName}`);
|
console.log(`[Folder Upload] Uploading file: ${fileName}`);
|
||||||
await uploadFileUtil(file, false);
|
await uploadFileUtil(file, false);
|
||||||
|
|
@ -297,7 +307,10 @@ export function KnowledgeDropdown() {
|
||||||
console.log(`[Folder Upload] Skipping duplicate: ${fileName}`);
|
console.log(`[Folder Upload] Skipping duplicate: ${fileName}`);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`[Folder Upload] Failed to upload ${originalFile.name}:`, error);
|
console.error(
|
||||||
|
`[Folder Upload] Failed to upload ${originalFile.name}:`,
|
||||||
|
error,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -516,7 +529,7 @@ export function KnowledgeDropdown() {
|
||||||
className="hidden"
|
className="hidden"
|
||||||
accept=".pdf,.doc,.docx,.txt,.md,.rtf,.odt"
|
accept=".pdf,.doc,.docx,.txt,.md,.rtf,.odt"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
ref={folderInputRef}
|
ref={folderInputRef}
|
||||||
type="file"
|
type="file"
|
||||||
|
|
|
||||||
|
|
@ -299,9 +299,13 @@ export function TaskProvider({ children }: { children: React.ReactNode }) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
// Only remove files from THIS specific task that completed
|
||||||
setFiles((prevFiles) =>
|
setFiles((prevFiles) =>
|
||||||
prevFiles.filter(
|
prevFiles.filter(
|
||||||
(file) => file.status === "active" || file.status === "failed",
|
(file) =>
|
||||||
|
file.task_id !== currentTask.task_id ||
|
||||||
|
file.status === "active" ||
|
||||||
|
file.status === "failed",
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
refetchSearch();
|
refetchSearch();
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue