/* global React */ function ContactForm() { const [fields, setFields] = React.useState({ nome: "", email: "", assunto: "", orcamento: "", mensagem: "" }); const [status, setStatus] = React.useState("idle"); // idle | sending | ok | error const set = k => e => setFields(f => ({ ...f, [k]: e.target.value })); const submit = async e => { e.preventDefault(); if (!fields.nome || !fields.email || !fields.assunto) return; // CC #162 FIX (2026-05-07): fire qualify_lead no submit intent, não só no // success do servidor. Standard GA4 form conversion = user intent. Antes // ficava dentro de `if (json.success)` o que significava que validation // failures (honeypot, missing fields) impediam o evento de chegar ao Ads. try { if (window.BolderTracking && typeof window.BolderTracking.trackContact === 'function') { window.BolderTracking.trackContact(); } } catch (_) { /* tracking nunca pode bloquear o flow */ } setStatus("sending"); try { const api = (window.BOLDER_API_BASE || '/wp-content/plugins/wp-bolder-plugin/api/') + 'contact.php'; const body = new FormData(); body.append("nome", fields.nome); body.append("empresa", fields.nome); // campo empresa usa nome da marca body.append("email", fields.email); body.append("assunto", fields.assunto + (fields.orcamento ? " · " + fields.orcamento : "")); body.append("mensagem", fields.mensagem); const r = await fetch(api, { method: "POST", body }); const json = await r.json(); setStatus(json.success ? "ok" : "error"); } catch { setStatus("error"); } }; if (status === "ok") { return (

Recebemos o pedido.

Respondemos em 48h úteis.

); } return (