// Success screen + Root App router function Success({ order, onRestart }) { React.useEffect(() => { window.Sound?.playGoal(); }, []); const ref = 'C26-' + Math.floor(Math.random() * 90000 + 10000); return (
{[...Array(30)].map((_, i) => (
))}
GOLO! ENCOMENDA CONFIRMADA
OS TEUS CROMOS
VÃO A CAMINHO
REFERÊNCIA
{ref}
Total pago {order?.total?.toFixed(2)}€
Entrega prevista 2-3 dias úteis
Transportadora CTT Expresso
🎁
BÓNUS DE BOAS-VINDAS
3 cromos raros holográficos vão no envio · Surpresa do Capitão
Voltar ao início
Vais receber um e-mail com a confirmação
Dúvidas? apoio@craques26.pt
); } // ───────────────────────────────────────────── // Root App // ───────────────────────────────────────────── function App() { const [route, setRoute] = React.useState('landing'); const [answers, setAnswers] = React.useState([]); const [discount, setDiscount] = React.useState(15); const [recommended, setRecommended] = React.useState('Campeão'); const [kit, setKit] = React.useState(null); const [order, setOrder] = React.useState(null); const go = (r) => { setRoute(r); }; // Scroll to top on route change React.useEffect(() => { window.scrollTo(0, 0); }, [route]); let screen; if (route === 'landing') screen = go('quiz')} />; else if (route === 'quiz') screen = { setAnswers(a); go('reveal'); }} />; else if (route === 'reveal') screen = { setDiscount(d); setRecommended(r); go('offers'); }} />; else if (route === 'offers') screen = { setKit(k); go('checkout'); }} />; else if (route === 'checkout') screen = { setOrder(o); go('success'); }} onBack={() => go('offers')} />; else if (route === 'success') screen = { setRoute('landing'); setAnswers([]); setDiscount(15); setKit(null); }} />; return (
{screen}
); } window.App = App;