/* ============================================================ NEUROMED — Multi-step booking form ============================================================ */ const { useState: useStateB } = React; const REASONS = [ { id: "consulta", label: "Primera consulta", hint: "Evaluación clínica inicial" }, { id: "segunda", label: "Segunda opinión", hint: "Revisar diagnóstico existente" }, { id: "post", label: "Control postoperatorio", hint: "Seguimiento de cirugía previa" }, { id: "urgencia", label: "Urgencia derivada", hint: "Canal prioritario · 24 hs" }, ]; const COVERAGES = ["Galeno", "IOMA", "Medicus", "OSDE", "OSRJA", "Swiss Medical", "Particular", "Otra obra social"]; /* Cada sede enruta a la secretaría correspondiente (email + WhatsApp) */ const SEDES = [ { id: "buenpastor", label: "Clínica del Buen Pastor", addr: "Av. Gral. Enrique Mosconi 1716 · Lomas del Mirador", email: "turnos.buenpastor@neuromed.ar", wa: "5491158136779" }, { id: "alcorta", label: "Clínica Privada Alcorta", addr: "Aristóbulo del Valle 2629 · Moreno", email: "turnos.alcorta@neuromed.ar", wa: "5491158136779" }, { id: "particular", label: "Consultorio particular", addr: "Consultorio privado · CABA", email: "turnos@neuromed.ar", wa: "5491158136779" }, ]; function BookingModal({ open, onClose, initialStep = 1, initialData }) { const [step, setStep] = useStateB(initialStep); const [data, setData] = useStateB(initialData || { reason: "consulta", coverage: "", sede: "", name: "", email: "", phone: "", notes: "", }); const [sending, setSending] = useStateB(false); const [sendError, setSendError] = useStateB(false); if (!open) return null; const set = (k, v) => setData((d) => ({ ...d, [k]: v })); const totalSteps = 3; const progress = (step / totalSteps) * 100; const sedeObj = SEDES.find((s) => s.id === data.sede); const canNext = { 1: !!data.reason && !!data.coverage && !!data.sede, 2: !!data.name && !!data.email && !!data.phone, 3: true, }[step]; const submit = async () => { setSending(true); setSendError(false); try { const res = await fetch('send.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data), }); const json = await res.json(); if (json.ok) { setStep(4); } else { setSendError(true); } } catch { setSendError(true); } finally { setSending(false); } }; return (
e.stopPropagation()}>
{step < 4 && (
0{step} / 0{totalSteps}
{Math.round(progress)}%
)} {step === 1 && ( <>

¿Por qué nos consultás?

Elegí la opción que mejor describa tu situación. Después confirmamos detalles por teléfono.

{REASONS.map((r) => ( ))}
{SEDES.map((s) => ( ))}
)} {step === 2 && ( <>

Tus datos

Solo lo imprescindible. Nada de spam, nada de listas.

set("name", e.target.value)} placeholder="María Pérez" />
set("email", e.target.value)} placeholder="vos@email.com" />
set("phone", e.target.value)} placeholder="+54 11…" />