import React, { useState } from 'react'; import { Upload, CheckCircle, AlertCircle } from 'lucide-react'; export default function FormularioCongreso() { const [formData, setFormData] = useState({ nombreCompleto: '', correo: '', dni: '', institucion: '', cicloSemestre: '', certificado: '', metodoPago: '', comprobante: null }); const [errors, setErrors] = useState({}); const [submitted, setSubmitted] = useState(false); const [showPayment, setShowPayment] = useState(false); const metodoPagoInfo = { yape: { numero: '987 654 321', nombre: 'Yape' }, plin: { numero: '987 654 321', nombre: 'Plin' }, bcp: { cuenta: '191-2345678-0-99', cci: '00219100234567809912', nombre: 'BCP' }, nacion: { cuenta: '00-123-456789', nombre: 'Banco de la Nación' }, bbva: { cuenta: '0011-0123-4567890123', cci: '011-123-001234567890123-45', nombre: 'BBVA' } }; const handleChange = (e) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); if (name === 'certificado') { setShowPayment(value === 'si'); if (value === 'no') { setFormData(prev => ({ ...prev, metodoPago: '', comprobante: null })); } } if (errors[name]) { setErrors(prev => ({ ...prev, [name]: '' })); } }; const handleFileChange = (e) => { const file = e.target.files[0]; if (file) { if (file.size > 5000000) { setErrors(prev => ({ ...prev, comprobante: 'El archivo no debe superar 5MB' })); return; } setFormData(prev => ({ ...prev, comprobante: file })); setErrors(prev => ({ ...prev, comprobante: '' })); } }; const validate = () => { const newErrors = {}; if (!formData.nombreCompleto.trim()) newErrors.nombreCompleto = 'Campo requerido'; if (!formData.correo.trim()) { newErrors.correo = 'Campo requerido'; } else if (!/\S+@\S+\.\S+/.test(formData.correo)) { newErrors.correo = 'Correo inválido'; } if (!formData.dni.trim()) { newErrors.dni = 'Campo requerido'; } else if (!/^\d{8}$/.test(formData.dni)) { newErrors.dni = 'DNI debe tener 8 dígitos'; } if (!formData.institucion.trim()) newErrors.institucion = 'Campo requerido'; if (!formData.cicloSemestre.trim()) newErrors.cicloSemestre = 'Campo requerido'; if (!formData.certificado) newErrors.certificado = 'Seleccione una opción'; if (formData.certificado === 'si') { if (!formData.metodoPago) newErrors.metodoPago = 'Seleccione un método de pago'; if (!formData.comprobante) newErrors.comprobante = 'Debe subir el comprobante de pago'; } return newErrors; }; const handleSubmit = (e) => { e.preventDefault(); const newErrors = validate(); if (Object.keys(newErrors).length > 0) { setErrors(newErrors); return; } // Aquí se enviarían los datos a un servidor console.log('Datos del formulario:', formData); setSubmitted(true); }; if (submitted) { return (
Hemos recibido tu inscripción al congreso.
{formData.certificado === 'si' && (Tu comprobante de pago será verificado y recibirás una confirmación por correo electrónico en las próximas 24-48 horas.
)}Complete el formulario para registrar su participación