// src/app.jsx
// Main app — routes between pages, swaps variation, drives the Tweaks panel.
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"variation": "v1",
"page": "home"
}/*EDITMODE-END*/;
function App() {
const [t, setTweak] = useTweaks(TWEAK_DEFAULTS);
// Page state is local — nav clicks shouldn't churn the persisted EDITMODE block.
const [page, setPage] = React.useState(t.page || 'home');
// Honor a tweak-driven page change (e.g. user sets the page via Tweaks panel)
React.useEffect(() => {
if (t.page && t.page !== page) setPage(t.page);
}, [t.page]);
const onNavigate = (id) => {
setPage(id);
window.scrollTo({ top: 0, behavior: 'instant' });
};
const isV2 = t.variation === 'v2';
const Home = isV2 ? V2Home : V1Home;
const Kit = isV2 ? V2Kit : V1Kit;
const About = isV2 ? V2About : V1About;
const Disclaimer = isV2 ? V2Disclaimer : V1Disclaimer;
let Screen;
if (page === 'kit') Screen = Kit;
else if (page === 'about') Screen = About;
else if (page === 'disclaimer') Screen = Disclaimer;
else Screen = Home;
return (
<>
setTweak('variation', v)}
/>
{ setPage(v); setTweak('page', v); }}
/>
>
);
}
ReactDOM.createRoot(document.getElementById('root')).render();