import React, { useState, useEffect } from 'react'; import Modal from '@/components/Modal'; import { FileText } from 'lucide-react'; import { fetchSchoolFileTemplatesFromRegistrationFiles, fetchParentFileTemplatesFromRegistrationFiles, } from '@/app/actions/subscriptionAction'; import { BASE_URL } from '@/utils/Url'; const FilesModal = ({ isOpen, setIsOpen, title = 'Fichiers disponibles', selectedRegisterForm, }) => { const [files, setFiles] = useState({ schoolFiles: [], parentFiles: [], sepaFile: null, }); useEffect(() => { if (!selectedRegisterForm?.student?.id) { console.error( 'selectedRegisterForm.student.id est invalide ou manquant.' ); return; } let fetchedSchoolFiles = []; // Déclaré dans un scope plus large // Fetch school and parent files sequentially fetchSchoolFileTemplatesFromRegistrationFiles( selectedRegisterForm.student.id ) .then((schoolFiles) => { if (!Array.isArray(schoolFiles)) { console.error( 'Les fichiers scolaires ne sont pas un tableau :', schoolFiles ); return; } fetchedSchoolFiles = schoolFiles; // Assigner les fichiers scolaires // Fetch parent files after school files return fetchParentFileTemplatesFromRegistrationFiles( selectedRegisterForm.student.id ); }) .then((parentFiles) => { // Construct the categorized files list const categorizedFiles = { schoolFiles: fetchedSchoolFiles.map((file) => ({ name: file.name || 'Document scolaire', url: file.file ? `${BASE_URL}${file.file}` : null, })), parentFiles: parentFiles.map((file) => ({ name: file.master_name || 'Document parent', url: file.file ? `${BASE_URL}${file.file}` : null, })), sepaFile: selectedRegisterForm.sepa_file ? { name: 'Mandat SEPA', url: `${BASE_URL}${selectedRegisterForm.sepa_file}`, } : null, }; setFiles(categorizedFiles); }) .catch((error) => { console.error('Erreur lors de la récupération des fichiers :', error); }); }, [selectedRegisterForm]); return ( {title} } ContentComponent={() => (
{/* Section Fichiers École */}

Formulaires de l'établissement

    {files.schoolFiles.length > 0 ? ( files.schoolFiles.map((file, index) => (
  • {file.url ? ( {file.name} ) : ( {file.name} (Non disponible) )}
  • )) ) : (

    Aucun fichier scolaire disponible.

    )}

{/* Section Fichiers Parent */}

Pièces fournies

    {files.parentFiles.length > 0 ? ( files.parentFiles.map((file, index) => (
  • {file.url ? ( {file.name} ) : ( {file.name} (Non disponible) )}
  • )) ) : (

    Aucun fichier parent disponible.

    )}

{/* Section Mandat SEPA */}

Mandat SEPA

{files.sepaFile ? (
{files.sepaFile.name}
) : (

Aucun mandat SEPA disponible.

)}
)} /> ); }; export default FilesModal;