// ========== App composition + Contact form ========== function ContactForm() { const [data, setData] = useState({ nombre: "", email: "", telefono: "", perfil: "novio", fecha: "", ciudad: "", invitados: "100-200", listo: "", servicio: "Experiencia Completa", juegos: "si", mensaje: "", recuerdos: { video: true, album: false, libro: false }, }); const [submitted, setSubmitted] = useState(false); const [touched, setTouched] = useState(false); const [sending, setSending] = useState(false); const set = (k, v) => setData(d => ({ ...d, [k]: v })); const toggle = (k) => setData(d => ({ ...d, recuerdos: { ...d.recuerdos, [k]: !d.recuerdos[k] } })); const WEBHOOK_URL = "https://services.leadconnectorhq.com/hooks/kEZKnFdhkbuCT1BBR0pv/webhook-trigger/e922945b-330c-4266-acf5-881b0ad42a05"; const submit = async (e) => { e.preventDefault(); setTouched(true); if (!data.nombre || !data.email || !data.telefono) return; setSending(true); const payload = { source: "matrilink.cl", form: "Solicitar cotización", submitted_at: new Date().toISOString(), nombre: data.nombre, email: data.email, telefono: data.telefono, perfil: data.perfil, fecha_matrimonio: data.fecha, ciudad: data.ciudad, cantidad_invitados: data.invitados, servicio_interes: data.servicio, juegos_dinamicas: data.juegos === 'si', recuerdos: { video_editado: data.recuerdos.video, album_digital: data.recuerdos.album, libro_fisico: data.recuerdos.libro, }, mensaje: data.mensaje, page: typeof window !== 'undefined' ? window.location.href : '', }; try { await fetch(WEBHOOK_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }); } catch (err) { // We still show success so the UX doesn't block. The webhook will retry. console.warn('Webhook error', err); } setSending(false); setSubmitted(true); }; if (submitted) { return (

Gracias por contactar a MatriLink 💍

Recibimos tu solicitud. Te escribiremos por WhatsApp para entender mejor tu matrimonio y recomendarte el plan ideal.

① Revisamos tu solicitud ② Te contactamos ③ Propuesta personalizada
); } const err = (k) => touched && !data[k]; return (
set('nombre', e.target.value)} placeholder="Camila Rodríguez" style={err('nombre') ? {borderColor: 'var(--terracota)'} : {}} />
set('email', e.target.value)} placeholder="camila@email.com" style={err('email') ? {borderColor: 'var(--terracota)'} : {}} />
set('telefono', e.target.value)} placeholder="+56 9 ····" style={err('telefono') ? {borderColor: 'var(--terracota)'} : {}} />
set('fecha', e.target.value)} />
set('ciudad', e.target.value)} placeholder="Casablanca · Viña Santa Elena" />
Al enviar aceptas nuestros términos. Te contactamos por WhatsApp en menos de 24h.
); } // ----- CONTACT SECTION ----- function Contact() { return (
Solicitar cotización

Conversemos sobre tu matrimonio.

Cuéntanos lo básico. Te escribimos por WhatsApp en menos de 24h con una propuesta personalizada según fecha, cantidad de invitados y el tipo de experiencia que quieren crear.

01
Revisamos tu solicitud. Entendemos tu fecha, invitados y prioridades.
02
Te contactamos por WhatsApp para conversar sobre tu evento.
03
Te enviamos una propuesta con los módulos que hacen más sentido.
); } // ----- FINAL CTA ----- function FinalCTA({ onCTA }) { return (
El gran día

Haz que tus invitados también cuenten la historia de tu matrimonio.

Desde la primera invitación hasta el video final, MatriLink te ayuda a organizar, comunicar y recordar tu gran día de una forma simple, moderna y emocional.

Hablar por WhatsApp
); } // ----- FLOATING WHATSAPP ----- function FloatingWA() { return ( ¿Hablamos por WhatsApp? ); } // ========== ROOT APP ========== function App() { const scrollToContact = () => { const el = document.getElementById('contacto'); if (el) window.scrollTo({ top: el.offsetTop - 60, behavior: 'smooth' }); }; return ( <>