diff --git a/Front-End/src/components/Inscription/InscriptionFormShared.js b/Front-End/src/components/Inscription/InscriptionFormShared.js index 4e62071..bfdb104 100644 --- a/Front-End/src/components/Inscription/InscriptionFormShared.js +++ b/Front-End/src/components/Inscription/InscriptionFormShared.js @@ -89,7 +89,7 @@ export default function InscriptionFormShared({ setCurrentTemplateIndex(firstUnsignedIndex); } else { // Si tous les templates sont signés, définir un index hors limites - setCurrentTemplateIndex(schoolFileTemplates.length); + setCurrentTemplateIndex(0); } }, [schoolFileTemplates]); @@ -125,31 +125,45 @@ export default function InscriptionFormShared({ return; } + // Télécharger le template downloadTemplate(template.slug) - .then((data) => fetch(data)) - .then((response) => response.blob()) + .then((downloadUrl) => fetch(downloadUrl)) + .then((response) => { + if (!response.ok) { + throw new Error('Erreur lors du téléchargement du fichier.'); + } + return response.blob(); + }) .then((blob) => { const file = new File([blob], `${template.name}.pdf`, { type: blob.type, }); + + // Préparer les données pour la mise à jour const updateData = new FormData(); updateData.append('file', file); + // Mettre à jour le template via l'API return editRegistrationSchoolFileTemplates( template.id, updateData, csrfToken ); }) - .then((data) => { - logger.debug('Template mis à jour avec succès :', data); + .then((updatedTemplate) => { + logger.debug('Template mis à jour avec succès :', updatedTemplate); // Mettre à jour l'état local de schoolFileTemplates - setSchoolFileTemplates((prevTemplates) => - prevTemplates.map((t, i) => - i === index ? { ...t, file: data.file } : t - ) - ); + setSchoolFileTemplates((prevTemplates) => { + const updatedTemplates = prevTemplates.map((t, i) => + i === index ? { ...t, file: updatedTemplate.data.file } : t + ); + logger.debug( + 'État schoolFileTemplates mis à jour :', + updatedTemplates + ); + return updatedTemplates; + }); }) .catch((error) => { logger.error('Erreur lors de la mise à jour du template :', error);