"use client" import type React from "react" import { useState } from "react" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Textarea } from "@/components/ui/textarea" import { Label } from "@/components/ui/label" import { Checkbox } from "@/components/ui/checkbox" import { Alert, AlertDescription } from "@/components/ui/alert" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { CheckCircle2, AlertCircle } from "lucide-react" export default function ContactoClientPage() { const [formData, setFormData] = useState({ tipoCruce: "", nombreApellido: "", tipoDocumento: "", numeroDocumento: "", pais: "", provincia: "", localidad: "", domicilio: "", telefono: "", fechaNacimiento: "", ocupacion: "", estudios: "", estadoFisico: "", actividadFisica: "", conocimientosCabalgata: "", sabeEnsillar: "", comoSeEntero: "", porQueSeAnoto: "", queLeAportaria: "", participaAsociacion: "", email: "", emailRepetir: "", fotoCarnet: null as File | null, imagenPerfil: null as File | null, consentimiento: false, }) const [isSubmitting, setIsSubmitting] = useState(false) const [isSubmitted, setIsSubmitted] = useState(false) const [alert, setAlert] = useState<{ type: "success" | "error" message: string } | null>(null) const paises = [ "Argentina", "Brasil", "Chile", "Uruguay", "Paraguay", "Bolivia", "Perú", "Colombia", "Venezuela", "Ecuador", "México", "Estados Unidos", "España", "Italia", "Francia", "Alemania", "Otro", ] const provincias = [ "Ciudad Autónoma de Buenos Aires", "Buenos Aires", "Catamarca", "Chaco", "Chubut", "Córdoba", "Corrientes", "Entre Ríos", "Formosa", "Jujuy", "La Pampa", "La Rioja", "Mendoza", "Misiones", "Neuquén", "Rio Negro", "Salta", "San Juan", "San Luis", "Santa Cruz", "Santa Fe", "Santiago del Estero", "Tierra del Fuego", "Tucumán", ] const estudiosOpciones = [ "Primario", "Primario completo", "Secundario", "Secundario completo", "Terciario / Universitario", "Terciario / Universitario completo", ] const comoSeEnteroOpciones = [ "Canal 13 Bs. As.", "Canal 26", "Canal 3 Rosario", "Canal 5 Rosario", "Canal 6 CableVisión Rosario", "Diario Clarín", "Diario Diario 1 Mendoza", "Diario La Capital Rosario", "Por el sitio web", "Por un amigo, conocido", "Radio 10", "Radio 2 LT2 Rosario", "Radio LT3 Rosario", "Radio LT8 Rosario", "Revista Soldado", "Otros medios", ] const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setIsSubmitting(true) setAlert(null) // Validaciones básicas if ( !formData.tipoCruce || !formData.nombreApellido || !formData.email || !formData.tipoDocumento || !formData.numeroDocumento || !formData.sabeEnsillar ) { setAlert({ type: "error", message: "Por favor completa todos los campos obligatorios (*).", }) setIsSubmitting(false) return } // Validar provincia solo si el país es Argentina if (formData.pais === "Argentina" && !formData.provincia) { setAlert({ type: "error", message: "Por favor completa todos los campos obligatorios (*).", }) setIsSubmitting(false) return } if (formData.email !== formData.emailRepetir) { setAlert({ type: "error", message: "Los emails no coinciden.", }) setIsSubmitting(false) return } if (!formData.consentimiento) { setAlert({ type: "error", message: "Debes autorizar el uso de tus datos para continuar.", }) setIsSubmitting(false) return } // Email validation const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/ if (!emailRegex.test(formData.email)) { setAlert({ type: "error", message: "Por favor ingresa un correo electrónico válido.", }) setIsSubmitting(false) return } try { const response = await fetch("/api/contact", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(formData), }) const data = await response.json() if (response.ok && data.success) { setIsSubmitted(true) } else { setAlert({ type: "error", message: data.error || "Hubo un error al enviar la inscripción. Por favor intenta nuevamente.", }) } } catch (error) { setAlert({ type: "error", message: "Error de conexión. Por favor verifica tu conexión e intenta nuevamente.", }) } finally { setIsSubmitting(false) } } // Si el formulario fue enviado exitosamente, mostrar página de agradecimiento if (isSubmitted) { return (
Gracias por comunicarte con nosotros. Hemos recibido tu inscripción para el Cruce de los Andes.
Próximos pasos:
La Asociación Cultural Sanmartiniana "Cuna de la Bandera" cuida y preserva el pasado para sembrar el futuro
Complete el formulario presentado a continuación, y luego presione ENVIAR. Los campos marcados con (*) requieren ingreso obligatorio.
Usted recibirá una copia de su Inscripción, esa es la confirmación de su registración. Ante una duda comunicarse a info@crucedelosandes.com.ar
La Asociación Cultural Sanmartiniana "Cuna de la Bandera" cuida y preserva el pasado para sembrar el futuro