// quiz.jsx — Multi-step eligibility quiz modal const QUIZ_STEPS = [ { id: 'goal', kind: 'choice', q: '¿Cuál es tu objetivo principal hoy?', sub: 'Esto guía qué protocolos te pueden funcionar.', options: [ { v: 'metabolic', l: 'Bajar de peso y mejorar mi metabolismo', i: 'pulse' }, { v: 'longevity', l: 'Sentirme con más energía y prevenir el envejecimiento', i: 'dna' }, { v: 'hormones', l: 'Ajustar mis hormonas (TRT, tiroides, menopausia)', i: 'shield' }, { v: 'sleep', l: 'Dormir mejor y reducir mi estrés', i: 'brain' }, ], }, { id: 'sex', kind: 'choice', q: '¿Cuál es tu sexo biológico?', sub: 'Determina qué hormonas y dosis son apropiadas.', options: [ { v: 'm', l: 'Hombre' }, { v: 'f', l: 'Mujer' }, { v: 'i', l: 'Intersex / prefiero no decir' }, ], }, { id: 'age', kind: 'slider', q: '¿Qué edad tienes?', sub: 'Necesitamos al menos 21 años para iniciar tratamiento.', min: 18, max: 75, def: 38, unit: 'años', }, { id: 'weight', kind: 'choice', q: '¿Has intentado bajar de peso antes?', sub: 'Tu historial nos ayuda a personalizar tu protocolo.', options: [ { v: 'never', l: 'Nunca lo he intentado seriamente' }, { v: 'diet', l: 'Sí, con dietas o ejercicio' }, { v: 'meds', l: 'Sí, con medicamentos (incluido GLP‑1)' }, { v: 'surg', l: 'Sí, con cirugía bariátrica' }, ], }, { id: 'conditions', kind: 'multi', q: '¿Tienes alguna de estas condiciones?', sub: 'Selecciona todas las que apliquen. Ninguna te excluye automáticamente.', options: [ { v: 'dm', l: 'Diabetes tipo 2' }, { v: 'htn', l: 'Hipertensión' }, { v: 'thy', l: 'Tiroides (hipo o hiper)' }, { v: 'chol', l: 'Colesterol alto' }, { v: 'preg', l: 'Embarazo o lactancia' }, { v: 'none', l: 'Ninguna de las anteriores' }, ], }, { id: 'country', kind: 'choice', q: '¿Desde dónde nos contactas?', sub: 'Operamos en estos países hoy.', options: [ { v: 'mx', l: '🇲🇽 México' }, { v: 'co', l: '🇨🇴 Colombia' }, { v: 'do', l: '🇩🇴 República Dominicana' }, { v: 'ar', l: '🇦🇷 Argentina' }, { v: 'cl', l: '🇨🇱 Chile' }, { v: 'pe', l: '🇵🇪 Perú' }, { v: 'es', l: '🇪🇸 España' }, ], }, { id: 'email', kind: 'email', q: 'Envíame mi plan personalizado', sub: 'Crearemos tu cuenta y guardaremos tu progreso. Cero spam.', }, ]; function Quiz({ open, onClose }) { const [step, setStep] = React.useState(0); const [answers, setAnswers] = React.useState({}); const [done, setDone] = React.useState(false); React.useEffect(() => { if (open) { setStep(0); setAnswers({}); setDone(false); } }, [open]); if (!open) return null; const s = QUIZ_STEPS[step]; const total = QUIZ_STEPS.length; const pct = Math.round(((step + (done ? 1 : 0)) / total) * 100); const setAns = (v) => setAnswers({ ...answers, [s.id]: v }); const next = () => { if (step < total - 1) setStep(step + 1); else setDone(true); }; const canNext = answers[s?.id] !== undefined && (s.kind !== 'multi' || (answers[s.id] && answers[s.id].length)); const iconFor = (key) => ({ pulse: Icon.pulse, dna: Icon.dna, shield: Icon.shield, brain: Icon.brain }[key] || Icon.spark); return (
{s.sub}
{s.kind === 'choice' && (Según tus respuestas, recomendamos el protocolo de{' '} {(TREATMENTS_NAME[answers.goal] || 'medicina personalizada')} . Un médico revisará tu caso y te contactará en menos de 24 horas.