function App() {
  const [jewel, setJewel] = React.useState('bracelet') // useState(localStorage.getItem('q-jewel') || 'bague');
  const [, force] = React.useState(0);
  const [qv, setQv] = React.useState(null), [legal, setLegal] = React.useState(false), [intro, setIntro] = React.useState(true);
  const [filter, setFilter] = React.useState('tous');
  const cart = useCart(), [cartOpen, setCartOpen] = React.useState(false), [cartShown, cartLeaving] = useLeave(cartOpen, 200);
  useScrollEngine();
  React.useEffect(() => { const r = () => force(x => x + 1), c = e => setJewel(e.detail); addEventListener('qjewel:ready', r); addEventListener('qjewel:change', c); if (window.QJewel) r(); return () => { removeEventListener('qjewel:ready', r); removeEventListener('qjewel:change', c); }; }, []);
  const pick = id => { setJewel(id); window.QJewel && window.QJewel.select(id); };
  const showBrands = id => { setFilter(id); go('createurs'); };
  return <>
    {intro && <Intro onDone={() => setIntro(false)}></Intro>}
    <div className="progress"></div>
    <Header count={cart.count} onCart={() => setCartOpen(true)}></Header>
    <main>
      <Hero jewel={jewel} onPick={pick}></Hero>
      <Manifeste></Manifeste>
      <Showroom jewel={jewel} onPick={pick}></Showroom>
      <Bienvenue></Bienvenue>
      <Univers onBrands={showBrands}></Univers>
      <Createurs filter={filter} setFilter={setFilter}></Createurs>
      <Vitrine onOpen={setQv} onAdd={cart.add}></Vitrine>
      <Cadeaux></Cadeaux>
      <Garanties></Garanties>
      <Histoire></Histoire>
      <Visite></Visite>
    </main>
    <Footer onLegal={() => setLegal(true)}></Footer>
    {/* Bouton flottant de choix du bijou — à remettre : <JewelPanel jewel={jewel} onPick={pick}></JewelPanel> */}
    <QuickView p={qv} onClose={() => setQv(null)} onAdd={cart.add}></QuickView>
    <CartToast toast={cart.toast}></CartToast>
    {cartShown && <CartPage cart={cart} leaving={cartLeaving} onClose={() => setCartOpen(false)}></CartPage>}
    <Legal open={legal} onClose={() => setLegal(false)}></Legal>
  </>;
}
(function boot() { if (!window.QuintescenceDesignSystem_1868a3 || !window.Footer || !window.Header || !window.CartPage) return setTimeout(boot, 60); ReactDOM.createRoot(document.getElementById('root')).render(<App></App>); })();
