'use client' import React, { useState, useEffect } from 'react'; import { DocusealBuilder } from '@docuseal/react'; import Button from '@/components/Button'; import { BASE_URL } from '@/utils/Url'; import { generateToken } from '@/app/actions/registerFileGroupAction'; import logger from '@/utils/logger'; import { GraduationCap, CloudUpload } from 'lucide-react'; import FileUpload from '@/components/FileUpload'; import SectionHeader from '@/components/SectionHeader'; export default function ValidateSubscription({ studentId, firstName, lastName, paymentSepa, file, onAccept }) { const [token, setToken] = useState(null); const [uploadedFileName, setUploadedFileName] = useState(''); const [selectedFile, setSelectedFile] = useState(null); // Nouvel état pour le fichier sélectionné const [pdfUrl, setPdfUrl] = useState(`${BASE_URL}/${file}`); const [isSepa, setIsSepa] = useState(paymentSepa); // Vérifie si le mode de paiement est SEPA const [currentPage, setCurrentPage] = useState(1); // Gestion des étapes useEffect(() => { if (isSepa) { generateToken('n3wt.school@gmail.com') .then((data) => { setToken(data.token); }) .catch((error) => logger.error('Erreur lors de la génération du token:', error)); } }, [isSepa]); const handleAccept = () => { if (!selectedFile && isSepa) { logger.error('Aucun fichier sélectionné pour le champ SEPA.'); return; } const data = { status: 7, sepa_file: selectedFile, // Utilise le fichier sélectionné depuis l'état }; // Appeler la fonction passée par le parent pour mettre à jour le RF onAccept(data); }; const isValidateButtonDisabled = isSepa && !uploadedFileName; const goToNextPage = () => { if (currentPage < (isSepa ? 2 : 1)) { setCurrentPage(currentPage + 1); } }; const goToPreviousPage = () => { if (currentPage > 1) { setCurrentPage(currentPage - 1); } }; return (