@@ -15,6 +15,8 @@ function ResultadosContent() {
1515 const [ isSubscribing , setIsSubscribing ] = useState ( false ) ;
1616 const [ subscriptionMessage , setSubscriptionMessage ] = useState ( '' ) ;
1717 const [ showModal , setShowModal ] = useState ( false ) ;
18+ const [ showSuccessMessage , setShowSuccessMessage ] = useState ( false ) ;
19+ const [ error , setError ] = useState ( '' ) ;
1820
1921 // Get form data from URL parameters
2022 const saldo = Number ( searchParams . get ( 'saldo' ) ) || 0 ;
@@ -143,33 +145,24 @@ function ResultadosContent() {
143145
144146 const handleSubscriptionSubmit = async ( e : React . FormEvent ) => {
145147 e . preventDefault ( ) ;
146- setIsSubscribing ( true ) ;
147- setSubscriptionMessage ( '' ) ;
148+ if ( ! subscriptionData . email || ! subscriptionData . nombre ) return ;
148149
149150 try {
150- // Validate email format
151- const emailRegex = / ^ [ ^ \s @ ] + @ [ ^ \s @ ] + \. [ ^ \s @ ] + $ / ;
152- if ( ! emailRegex . test ( subscriptionData . email ) ) {
153- throw new Error ( 'Por favor, ingresa un correo electrónico válido' ) ;
154- }
155-
156- if ( ! subscriptionData . nombre ) {
157- throw new Error ( 'Por favor, ingresa tu nombre' ) ;
158- }
151+ // Guardar en Airtable con los datos adicionales
152+ await createEvaluation ( {
153+ afp ,
154+ fondo ,
155+ saldo : Number ( saldo ) ,
156+ fechaNacimiento ,
157+ nombre : subscriptionData . nombre ,
158+ email : subscriptionData . email
159+ } ) ;
159160
160- // No need to save to Airtable again, just show success message
161- setSubscriptionMessage ( '¡Gracias por suscribirte! Te enviaremos información sobre cómo mejorar tu situación previsional.' ) ;
161+ setShowSuccessMessage ( true ) ;
162162 setSubscriptionData ( { nombre : '' , email : '' } ) ;
163- // Close modal after successful subscription
164- setTimeout ( ( ) => {
165- setShowModal ( false ) ;
166- setSubscriptionMessage ( '' ) ;
167- } , 3000 ) ;
168163 } catch ( error ) {
169- console . error ( 'Error submitting subscription:' , error ) ;
170- setSubscriptionMessage ( 'Hubo un error al procesar tu suscripción. Por favor, intenta nuevamente.' ) ;
171- } finally {
172- setIsSubscribing ( false ) ;
164+ console . error ( 'Error al guardar suscripción:' , error ) ;
165+ setError ( 'Hubo un error al procesar tu suscripción. Por favor, intenta nuevamente.' ) ;
173166 }
174167 } ;
175168
@@ -326,9 +319,9 @@ function ResultadosContent() {
326319 >
327320 { isSubscribing ? 'Enviando...' : 'Recibir Recomendaciones' }
328321 </ button >
329- { subscriptionMessage && (
330- < p className = { ` text-center text-sm ${ subscriptionMessage . includes ( 'error' ) ? ' text-red-600' : 'text-green-600' } ` } >
331- { subscriptionMessage }
322+ { error && (
323+ < p className = " text-center text-sm text-red-600" >
324+ { error }
332325 </ p >
333326 ) }
334327 </ form >
0 commit comments