// ═══════════════════════════════════════════════════════════════════════════ // MODAL DE CAPTURA — final do quiz, dispara Lead + Contact + redireciona pro WhatsApp // ═══════════════════════════════════════════════════════════════════════════ function Modal({ answers, onClose, onSubmit, originText }) { const [form, setForm] = React.useState({ nome: '', sobrenome: '', whatsapp: '', email: '', nascimento: '' }); const [errors, setErrors] = React.useState({}); const [loading, setLoading] = React.useState(false); React.useEffect(() => { document.body.style.overflow = 'hidden'; if (window.lucide) window.lucide.createIcons(); return () => { document.body.style.overflow = ''; }; }, []); React.useEffect(() => { if (window.lucide) window.lucide.createIcons(); }); function maskPhone(val) { const d = val.replace(/\D/g, '').slice(0, 11); if (d.length <= 2) return d; if (d.length <= 7) return `(${d.slice(0,2)}) ${d.slice(2)}`; if (d.length <= 11) return `(${d.slice(0,2)}) ${d.slice(2,7)}-${d.slice(7)}`; return val; } function maskDate(val) { const d = val.replace(/\D/g, '').slice(0, 8); if (d.length <= 2) return d; if (d.length <= 4) return `${d.slice(0,2)}/${d.slice(2)}`; return `${d.slice(0,2)}/${d.slice(2,4)}/${d.slice(4)}`; } function validate() { const e = {}; if (!form.nome.trim() || form.nome.trim().length < 2) e.nome = 'Informe seu nome.'; if (!form.sobrenome.trim() || form.sobrenome.trim().length < 2) e.sobrenome = 'Informe seu sobrenome.'; const digits = form.whatsapp.replace(/\D/g, ''); if (digits.length < 10) e.whatsapp = 'WhatsApp inválido.'; if (!form.email.trim() || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(form.email)) e.email = 'E-mail inválido.'; const dd = form.nascimento.replace(/\D/g, ''); if (dd.length !== 8) e.nascimento = 'Data inválida (DD/MM/AAAA).'; return e; } async function handleSubmit(e) { e.preventDefault(); const errs = validate(); if (Object.keys(errs).length) { setErrors(errs); return; } setLoading(true); const payload = { ...form, ...answers }; await onSubmit(payload); // Monta a mensagem do WhatsApp com TODAS as respostas pra IA já saber tudo const labels = QUIZ_LABELS; const opener = originText || 'Olá! Vim do diagnóstico 8BAC 👋'; const txt = [ opener, '', `Sou o(a) *${form.nome.trim()} ${form.sobrenome.trim()}*`, `📧 ${form.email.trim()}`, `🎂 ${form.nascimento}`, '', '*Minhas respostas:*', `✓ Já investi em tráfego: ${labels.tem_trafego[answers.tem_trafego] || answers.tem_trafego}`, `✓ Faturamento atual: ${labels.faturamento[answers.faturamento] || answers.faturamento}`, `✓ Atendimento preferido: ${labels.atendimento[answers.atendimento] || answers.atendimento}`, '', 'Quero entender como vocês podem me ajudar.' ].join('\n'); const link = `https://wa.me/5513981773862?text=${encodeURIComponent(txt)}`; window.open(link, '_blank'); onClose(); } function set(field) { return (e) => { let val = e.target.value; if (field === 'whatsapp') val = maskPhone(val); if (field === 'nascimento') val = maskDate(val); setForm(f => ({ ...f, [field]: val })); if (errors[field]) setErrors(er => ({ ...er, [field]: undefined })); }; } return (