diff --git a/client/src/pages/Upload.tsx b/client/src/pages/Upload.tsx index 4be9ee1..c1b5ad8 100644 --- a/client/src/pages/Upload.tsx +++ b/client/src/pages/Upload.tsx @@ -17,6 +17,7 @@ import { } from "lucide-react"; import { toast } from "sonner"; import { useLocation } from "wouter"; +import { parseImportResultSummary } from "@shared/importResultSummary"; interface UploadedFile { name: string; @@ -24,6 +25,9 @@ interface UploadedFile { status: "pending" | "processing" | "completed" | "error"; progress?: string; invoicesDetected?: number; + importedCount?: number; + duplicateCount?: number; + errorCount?: number; } export default function Upload() { @@ -66,11 +70,15 @@ export default function Upload() { prev.map((f) => { if (f.sourceFileId !== sf.id) return f; if (f.status === sf.processingStatus) return f; + const summary = parseImportResultSummary(sf.processingProgress); return { ...f, status: (sf.processingStatus ?? "pending") as UploadedFile["status"], progress: sf.processingProgress ?? undefined, invoicesDetected: sf.totalInvoicesDetected ?? undefined, + importedCount: summary?.importedCount, + duplicateCount: summary?.duplicateCount, + errorCount: summary?.errorCount, }; }) ); @@ -165,6 +173,10 @@ export default function Upload() { const processingCount = uploadedFiles.filter( (f) => f.status === "processing" || f.status === "pending" ).length; + const importedInvoiceCount = uploadedFiles.reduce( + (total, file) => total + (file.importedCount ?? 0), + 0, + ); return ( @@ -282,8 +294,11 @@ export default function Upload() {
Fichiers importés - {completedCount > 0 && ( - {completedCount} terminé(s) + {completedCount > 0 && importedInvoiceCount > 0 && ( + {importedInvoiceCount} facture(s) créée(s) + )} + {completedCount > 0 && importedInvoiceCount === 0 && ( + {completedCount} terminé(s), aucune facture créée )} {processingCount > 0 && ( {processingCount} en cours @@ -294,7 +309,7 @@ export default function Upload() {
- {completedCount > 0 && ( + {importedInvoiceCount > 0 && (