// GSP Contact form + Locations. function ContactForm({ empleo = false, formId }) { const Icon = window.Icon; // status: 'idle' | 'sending' | 'sent' | 'error' const [status, setStatus] = React.useState('idle'); const [form, setForm] = React.useState({ nombre: '', telefono: '', email: '', servicio: '', mensaje: '', empresa_web: '' }); const startedAt = React.useRef(Date.now()); const tsRef = React.useRef(null); // container del captcha const tsId = React.useRef(null); // widgetId de Turnstile const fid = formId || (window.GSPForms ? window.GSPForms.pageFormId('contacto') : 'contacto'); const set = (k) => (e) => setForm((f) => ({ ...f, [k]: e.target.value })); React.useEffect(() => { startedAt.current = Date.now(); if (window.GSPForms) window.GSPForms.renderTurnstile(tsRef.current).then((id) => { tsId.current = id; }); }, []); const handleSubmit = (e) => { e.preventDefault(); if (status === 'sending') return; setStatus('sending'); const token = window.GSPForms ? window.GSPForms.getToken(tsId.current) : ''; window.GSPForms.submit({ formId: fid, fields: { nombre: form.nombre, telefono: form.telefono, email: form.email, servicio: form.servicio, mensaje: form.mensaje }, meta: { startedAt: startedAt.current, hp: form.empresa_web, token }, }).then(() => { setStatus('sent'); }).catch((err) => { console.warn('[ContactForm] envío falló:', err && err.message); setStatus('error'); if (window.GSPForms) window.GSPForms.resetTurnstile(tsId.current); }); }; const sent = status === 'sent'; const sending = status === 'sending'; const features = [ ['Respuesta en 24 hs', 'Nos comprometemos a responder rápido.'], ['Sin compromiso', 'Cotización gratuita y sin obligación.'], ['Asesoramiento profesional', 'Un especialista analiza tu caso particular.'], ]; return ( Contacto Solicitá tu cotizaciónsin compromiso Completá el formulario y nuestro equipo te contactará en menos de 24 horas con una propuesta adaptada a tus necesidades. {features.map(([h, p]) => ( {h}{p} ))} {sent ? ( ¡Consulta enviada! Gracias. Un especialista de GSP te va a contactar dentro de las próximas 24 horas. ) : ( Seleccioná un servicio Vigilancia Privada Alarmas Cámaras de Seguridad Control de Accesos Geolocalización de Flotas Otro {/* honeypot anti-bot: oculto para humanos, invisible a lectores de pantalla */} No completar {sending ? 'Enviando…' : 'Enviar consulta'} {status === 'error' && ( No pudimos enviar tu consulta. Reintentá o escribinos por teléfono. )} {empleo ? ( ¿Buscás empleo? Este formulario no es para eso. Trabajá con nosotros → ) : ( o escribinos por WhatsApp → )} )} ); } window.ContactForm = ContactForm; function Locations() { const items = [ ['Capital Federal', 'Centro operativo CABA', 'Vigilancia + Electrónica'], ['La Plata', 'Centro operativo PBA', 'Vigilancia'], ['Pinamar', 'Av. Constitución 1386', 'Sede central · Electrónica'], ['Gral. Madariaga', 'Centro operativo Costa', 'Vigilancia'], ]; return ( {items.map(([h, p, tag], i) => ( {h}{p}{tag} ))} ); } window.Locations = Locations;
Completá el formulario y nuestro equipo te contactará en menos de 24 horas con una propuesta adaptada a tus necesidades.
{p}
Gracias. Un especialista de GSP te va a contactar dentro de las próximas 24 horas.
No pudimos enviar tu consulta. Reintentá o escribinos por teléfono.
o escribinos por WhatsApp →