// site/app.jsx — Composition principale du site Phase 2

// Au chargement / refresh : remonter en haut (hero), même si le navigateur
// veut restaurer la position de scroll précédente.
if (typeof window !== "undefined" && "scrollRestoration" in window.history) {
  window.history.scrollRestoration = "manual";
}

function SiteApp() {
  // Force le scroll en haut au montage (sauf si l'URL pointe déjà sur un
  // hash explicite — ex. #section-rsvp depuis un lien externe).
  React.useEffect(() => {
    if (!window.location.hash) {
      window.scrollTo(0, 0);
      // Et après un tick au cas où le navigateur a re-scrollé entre temps.
      requestAnimationFrame(() => window.scrollTo(0, 0));
    }
  }, []);
  const isAdmin = typeof window !== "undefined" && window.location.search.includes("admin");
  return (
    <>
      <AppLinkBanner />
      <TopBanner />
      <StickyNav />
      <Hero />
      <ProgrammeSection />
      <LieuSection />
      <VenirSection />
      <HebergementsSection />
      <DressCodeSection />
      <RsvpSection />
      <AppLinkSection />
      <FaqSection />
      <TemoinsSection />
      {isAdmin && <AdminPanel />}
      <FooterSection />
    </>
  );
}

const siteRoot = ReactDOM.createRoot(document.getElementById("site-root"));
siteRoot.render(<SiteApp />);
