/* global React */ const { useState, useEffect } = React; function DeployModal({ state, onClose, onLive }) { const { t, lang } = useT(); const [phase, setPhase] = useState(0); // 0..3 done const [copied, setCopied] = useState(false); const url = `https://${slug(state.title) || "untitled"}.aimaker.app`; useEffect(() => { const timers = [ setTimeout(() => setPhase(1), 900), setTimeout(() => setPhase(2), 1900), setTimeout(() => setPhase(3), 2900), ]; return () => timers.forEach(clearTimeout); }, []); const phases = [ { label: t.dep_building, done: phase >= 1 }, { label: t.dep_uploading, done: phase >= 2 }, { label: t.dep_warming, done: phase >= 3 }, ]; const isDone = phase === 3; return (
aimaker · deploy
{!isDone ? ( <>

{t.dep_title}

) : ( <>

{t.dep_done}

{t.dep_url}
{url}
onLive(url)}>{t.dep_open}
)}
); } function LiveApp({ state, url, onBack, onRedeploy }) { const { t } = useT(); return (
{url}
{t.live_redeploy}
); } function LivePreview({ state }) { const title = state.title || "untitled"; if (state.projectType === "ai") { return (
{title[0]?.toUpperCase() || "A"}
{title}
online · ready
Hola, soy {title}. {state.goal || "¿En qué puedo ayudarte?"}
¿Cómo empezamos?
Cuéntame qué tienes en mente y avanzamos paso a paso.
Escribe un mensaje…
); } if (state.projectType === "app") { return (

Hola otra vez 👋

{state.desc || "Aquí va un panel limpio para empezar."}

12

elementos

03

activos

87%

salud
NombreEstadoHoy
Proyecto αactivo+12
Proyecto βen curso+04
Proyecto γarchivado
); } if (state.projectType === "site") { return (

{state.goal || "Construido con calma."}

{state.desc || "Una colección de páginas pensadas para acompañar."}

Manifiesto

Empezamos por las preguntas, no por las respuestas.

Trabajo

Tres piezas recientes para enseñar cómo pensamos.

Contacto

Escríbenos. Respondemos en menos de 48 horas.

); } // landing return (
{title} Empezar →
— ahora en beta —

{state.goal || "Una idea simple, hecha bien."}

{state.desc || "Te acompañamos desde la pregunta inicial hasta el despliegue final."}

Rápido

De la idea al deploy en una sola sesión.

Tuyo

Tu código, tu API key, tu dominio.

Acompañado

Un tutor cerca cuando lo necesites.

); } function slug(s) { return (s || "").toLowerCase().trim().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 28); } Object.assign(window, { DeployModal, LiveApp });