// app.jsx — main app: tab switcher (Clássica + Raw) + tweaks panel + floating WA const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "variation": "classica", "headline": "C", "activeLot": "L1", "heroPhoto": "assets/nath-foto2.png", "accent": "primary", "showProof": true }/*EDITMODE-END*/; const LOT_PRICES = { L0: 19, L1: 29, L2: 59, L3: 99 }; const PHOTOS = { 'assets/nath-foto1.png': 'Foto 1 — sorriso (Quem é Nath)', 'assets/nath-foto2.png': 'Foto 2 — mão no rosto (hero)', 'assets/nath-ney7.png': 'Foto 3 — vestido / banco', 'assets/nath-ney8.png': 'Foto 4 — vestido / banco II', }; const VARIATIONS = [ { id: 'classica', label: 'Clássica', Comp: () => window.LPClassica }, { id: 'raw', label: 'Raw', Comp: () => window.LPRaw }, ]; function App() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); React.useEffect(() => { const root = document.documentElement; if (t.accent === 'light') { root.style.setProperty('--accent', 'var(--gold-light)'); root.style.setProperty('--accent-soft', '#F2E0A8'); } else { root.style.setProperty('--accent', 'var(--gold)'); root.style.setProperty('--accent-soft', 'var(--gold-light)'); } }, [t.accent]); React.useEffect(() => { requestAnimationFrame(() => window.scrollTo({ top: 0, behavior: 'instant' })); }, [t.variation]); const lpTweaks = { headline: t.headline, activeLot: t.activeLot, activeLotPrice: LOT_PRICES[t.activeLot] || 29, heroPhoto: t.heroPhoto, showProof: t.showProof, }; const VarObj = VARIATIONS.find(v => v.id === t.variation) || VARIATIONS[0]; const Comp = VarObj.Comp(); return (
Imersão Mulher 1% · LP studies
{VARIATIONS.map(v => ( ))}
{Comp ? :
Carregando…
}
{/* Floating WhatsApp button — global */} setTweak('variation', v)} /> setTweak('headline', v)} />
{t.headline === 'A' && '"Ele foi embora. Voltou. Você ficou…"'} {t.headline === 'B' && '"A Mulher 1% não espera ser escolhida."'} {t.headline === 'C' && '"O problema não é que os homens são uma merda."'}
setTweak('activeLot', v)} />
{t.activeLot === 'L0' && 'L0 R$19 — esgotado IRL'} {t.activeLot === 'L1' && 'L1 R$29 — lote especial (ativo)'} {t.activeLot === 'L2' && 'L2 R$59 — segundo lote'} {t.activeLot === 'L3' && 'L3 R$99 — último lote'}
({ value: v, label: l }))} onChange={(v) => setTweak('heroPhoto', v)} />
foto sorriso fixa em "Quem é Nathalia"
setTweak('accent', v)} /> setTweak('showProof', v)} />
mocks visuais — substituir por prints reais
); } ReactDOM.createRoot(document.getElementById('root')).render();