diff --git a/client/src/pages/AdminGestionAttestations.tsx b/client/src/pages/AdminGestionAttestations.tsx index 647ea94..df12221 100644 --- a/client/src/pages/AdminGestionAttestations.tsx +++ b/client/src/pages/AdminGestionAttestations.tsx @@ -27,6 +27,7 @@ function UploadAttestationDialog({ }) { const [uploading, setUploading] = useState(false); const [uploadProgress, setUploadProgress] = useState(0); + const [selectedFileName, setSelectedFileName] = useState(null); const [fileData, setFileData] = useState<{ nomFichier: string; urlFichier: string; @@ -40,6 +41,7 @@ function UploadAttestationDialog({ if (open) { setUploading(false); setUploadProgress(0); + setSelectedFileName(null); setFileData(null); } }, [open]); @@ -128,6 +130,11 @@ function UploadAttestationDialog({

Upload en cours...

+ {selectedFileName && ( +

+ {selectedFileName} +

+ )}
Progression @@ -184,15 +191,20 @@ function UploadAttestationDialog({ const file = e.target.files?.[0]; if (!file) return; + // Afficher IMMÉDIATEMENT le nom du fichier sélectionné + setSelectedFileName(file.name); + // Validation du type de fichier if (file.type !== 'application/pdf') { toast.error('Seuls les fichiers PDF sont acceptés'); + setSelectedFileName(null); return; } // Validation de la taille du fichier if (file.size > 10 * 1024 * 1024) { toast.error('Le fichier ne doit pas dépasser 10 Mo'); + setSelectedFileName(null); return; } diff --git a/todo.md b/todo.md index fd297f4..3e3fd73 100644 --- a/todo.md +++ b/todo.md @@ -1478,3 +1478,5 @@ - [x] Restructurer le flux d'upload avec useEffect pour affichage immédiat - [x] Corriger la latence avec requestAnimationFrame pour affichage avant fetch bloquant + +- [x] Afficher immédiatement le nom du fichier sélectionné dans la boîte de dialogue