/* Federica Gori — chrome condiviso del sito (Header + Footer + mount).
   Sito multi-pagina: la navigazione usa URL reali (un file per pagina).
   onNav(id) → naviga al file corrispondente. */

const FG_LOGO = (window.__resources && window.__resources.fgLogo) || "assets/logo-federica-transparent.png";
const FG_PORTRAIT = (window.__resources && window.__resources.fgPortrait) || "assets/federica.jpg";

const FG_NAV = [
  { id: "home", label: "Home", url: "index.html" },
  { id: "method", label: "Il metodo", url: "metodo.html" },
  { id: "analisi", label: "Analisi a distanza", url: "analisi-a-distanza.html" },
  { id: "about", label: "Chi sono", url: "chi-sono.html" },
  { id: "diario", label: "Diario", url: "diario.html" },
  { id: "contact", label: "Contatti", url: "contatti.html" },
];

const FG_URL = FG_NAV.reduce((m, l) => { m[l.id] = l.url; return m; }, {});

function fgGo(id) {
  const url = FG_URL[id] || "index.html";
  window.location.href = url;
}

/* Guscio di pagina: Header + main + Footer, coerente su ogni pagina. */
function SiteShell({ current, children }) {
  const NS = window.FedericaGoriDesignSystem_549960;
  const { Header, Footer } = NS;
  const navLinks = FG_NAV.map(({ id, label }) => ({ id, label }));

  return (
    <React.Fragment>
      <Header
        current={current}
        onNav={fgGo}
        onCta={() => fgGo("contact")}
        links={navLinks}
        ctaLabel="Prenota"
        logoSrc={FG_LOGO}
        subtitle="Naturopata · Medicina funzionale"
      />
      <main key={current}>
        {children}
      </main>
      <Footer
        brand="Federica Gori"
        logoSrc={FG_LOGO}
        onNav={fgGo}
        links={navLinks.filter((l) => l.id !== "home")}
        tagline="Naturopata. Cerco la causa, non il sintomo, e ti accompagno nel cambiamento."
        contacts={["info@federicagori.it", "339 537 8744", "Ravenna · Alfonsine"]}
        legal="© 2026 Federica Gori · Naturopata — la naturopatia non sostituisce il parere medico."
      />
    </React.Fragment>
  );
}

/* Monta una pagina dentro il guscio, quando bundle + helper sono pronti. */
function fgMount(PageComponent, current) {
  function ready() {
    return window.FedericaGoriDesignSystem_549960 && window.Icon && window.Photo;
  }
  function go() {
    if (!ready()) { setTimeout(go, 30); return; }
    ReactDOM.createRoot(document.getElementById("root")).render(
      <SiteShell current={current}>
        <PageComponent />
      </SiteShell>
    );
  }
  go();
}

Object.assign(window, { FG_LOGO, FG_PORTRAIT, FG_NAV, FG_URL, fgGo, SiteShell, fgMount });
