/* BeautyBloom — App shell */

function App() {
  const [query, setQuery] = useState("");
  const [openProduct, setOpenProduct] = useState(null);
  const [jumpCat, setJumpCat] = useState(null);
  const [downloadOpen, setDownloadOpen] = useState(false);
  const [cookieNoticeClosed, setCookieNoticeClosed] = useState(() => {
    try { return localStorage.getItem("bb-cookie-notice-closed") === "1"; } catch { return false; }
  });

  const onScrollTo = (id) => {
    const el = document.getElementById(id);
    if (el) el.scrollIntoView({ behavior: "smooth", block: "start" });
  };

  const onPickStep = (cat) => {
    setJumpCat(cat);
    onScrollTo("catalogo");
  };

  const onCloseCookieNotice = () => {
    try { localStorage.setItem("bb-cookie-notice-closed", "1"); } catch {}
    setCookieNoticeClosed(true);
  };

  return (
    <div className="bb-app">
      <TopNav
        onScrollTo={onScrollTo}
        onOpenDownload={() => setDownloadOpen(true)}
        query={query}
        setQuery={setQuery}
        resultCount={0}
        total={window.BB_DATA.products.length}
      />
      <Hero onScrollTo={onScrollTo} productCount={window.BB_DATA.products.length} />
      <RoutineStrip onPickStep={onPickStep} />
      <Catalog
        query={query}
        setQuery={setQuery}
        onOpenProduct={setOpenProduct}
        jumpToCategory={jumpCat}
        setJumpToCategory={setJumpCat}
      />
      <IngredientPanel />
      <Footer onScrollTo={onScrollTo} onOpenDownload={() => setDownloadOpen(true)} />
      <QuickView product={openProduct} onClose={() => setOpenProduct(null)} />
      <CatalogDownloadModal open={downloadOpen} onClose={() => setDownloadOpen(false)} />
      {!cookieNoticeClosed && <CookieDisclaimer onClose={onCloseCookieNotice} />}
    </div>
  );
}

const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<App />);
