// Tutorial interactivo: configurar y usar la app Minute Data const { useState: useTutState } = React; const TUT_STEPS = [ { title: "Instala la app", desc: "Busca «Minute Data» en el App Store o Google Play (o usa los botones de arriba) y tócala para instalar.", imgs: [{ src: "tutorial/01-install.jpg", label: "" }], }, { title: "Crea tu cuenta", desc: "Abre la app, regístrate y verás la pantalla de bienvenida. Toca «Next» para continuar.", imgs: [{ src: "tutorial/02-welcome.jpg", label: "" }], }, { title: "Mira cómo funciona", desc: "La app te lo resume: únete a una organización, graba, sube automáticamente por Wi-Fi y repite. Toca «Get Started».", imgs: [{ src: "tutorial/03-howitworks.jpg", label: "" }], }, { title: "Ingresa el código de organización", desc: "El paso más importante: escribe 3JQTT5F4 cuando la app lo pida. Así tus horas se registran y se pagan.", imgs: [{ src: "tutorial/04-code.jpg", label: "" }], }, { title: "Explora las categorías y tareas", desc: "Abre «Tasks» y filtra por categoría — orden, lavandería, cocina… Cada tarjeta es una tarea que puedes grabar.", imgs: [ { src: "tutorial/05a-categories.jpg", label: "Categorías" }, { src: "tutorial/05b-tasks.jpg", label: "Tareas" }, ], }, { title: "Lee la tarea y dale Start", desc: "Cada tarea muestra fotos de ejemplo y su descripción. Cuando estés listo —cinta puesta y teléfono horizontal— toca «Start».", imgs: [{ src: "tutorial/06-task.jpg", label: "" }], }, { title: "Graba y detén", desc: "Haz la tarea completa a tu ritmo normal. Al terminar, toca «Stop Recording» — la sesión se sube sola por Wi-Fi.", imgs: [{ src: "tutorial/07-recording.jpg", label: "" }], landscape: true, }, ]; function TutConfetti() { const pieces = React.useMemo(() => Array.from({ length: 28 }, (_, i) => ({ left: Math.random() * 100, delay: Math.random() * 0.5, dur: 1.8 + Math.random() * 1.4, color: ["#3e9b6b", "#d96e48", "#d9a23e", "#3e8e9b", "#9b6ed9"][i % 5], rot: Math.floor(Math.random() * 360), round: i % 4 === 0, })), []); return ( ); } function AppTutorial() { const [step, setStep] = useTutState(0); const [imgIdx, setImgIdx] = useTutState(0); const s = TUT_STEPS[step]; const img = s.imgs[Math.min(imgIdx, s.imgs.length - 1)]; const goTo = (i) => { setStep(i); setImgIdx(0); }; const isLast = step === TUT_STEPS.length - 1; return (
Paso {step + 1} de {TUT_STEPS.length}

{s.title}

{isLast ? : null}
{s.title} {s.imgs.length > 1 ? (
{s.imgs.map((im, i) => ( ))}
) : null}
{TUT_STEPS.map((t, i) => ( ))}

{s.desc}

{isLast ? (
¡LISTO! La app se encarga del resto. ¡Bien hecho, felicidades! 🎉
) : null}
); } Object.assign(window, { AppTutorial });