/* ============================================================
   App — Dra. Aline LP
   ============================================================ */

const { useState: useStateApp, useEffect: useEffectApp } = React;

const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "palette": "navy",
  "cta": "gold",
  "density": "comfortable",
  "showUrgency": false
}/*EDITMODE-END*/;

function App() {
  const [menuOpen, setMenuOpen] = useStateApp(false);
  const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS);

  // Apply tweaks to <body> data-attrs
  useEffectApp(() => {
    document.body.dataset.palette = tweaks.palette;
    document.body.dataset.cta = tweaks.cta;
    document.body.dataset.density = tweaks.density;
  }, [tweaks.palette, tweaks.cta, tweaks.density]);

  useReveal();

  return (
    <>
      {tweaks.showUrgency && <UrgencyBar/>}
      <Nav onOpenMenu={() => setMenuOpen(true)}/>
      <MobileMenu open={menuOpen} onClose={() => setMenuOpen(false)}/>
      <main>
        <Hero/>
        <Pain/>
        <Areas/>
        <About/>
        <Process/>
        <Faq/>
        <FinalCTA/>
      </main>
      <Footer/>
      <FabWhatsapp/>

      <TweaksPanel title="Tweaks">
        <TweakSection label="Visual">
          <TweakRadio
            label="Paleta"
            value={tweaks.palette}
            onChange={(v) => setTweak('palette', v)}
            options={[
              { value: 'navy', label: 'Marinho' },
              { value: 'charcoal', label: 'Grafite' },
              { value: 'indigo', label: 'Índigo' },
            ]}
          />
          <TweakRadio
            label="Cor do CTA"
            value={tweaks.cta}
            onChange={(v) => setTweak('cta', v)}
            options={[
              { value: 'green', label: 'Verde' },
              { value: 'gold', label: 'Dourado' },
              { value: 'ink', label: 'Marinho' },
            ]}
          />
          <TweakRadio
            label="Densidade"
            value={tweaks.density}
            onChange={(v) => setTweak('density', v)}
            options={[
              { value: 'comfortable', label: 'Espaçoso' },
              { value: 'dense', label: 'Compacto' },
            ]}
          />
        </TweakSection>
        <TweakSection label="Elementos">
          <TweakToggle
            label="Banner de urgência"
            value={tweaks.showUrgency}
            onChange={(v) => setTweak('showUrgency', v)}
          />
        </TweakSection>
      </TweaksPanel>
    </>
  );
}

ReactDOM.createRoot(document.getElementById('root')).render(<App/>);
