// NekoWebFree — main app

function App() {
  return (
    <GateProvider>
      <RouterProvider>
        <AppShell />
      </RouterProvider>
    </GateProvider>
  );
}

function AppShell() {
  const { route } = useRouter();
  const { unlocked } = useGate();

  let page;
  switch (route.name) {
    case "home":     page = <HomePage />; break;
    case "browse":   page = <BrowsePage />; break;
    case "category": page = <BrowsePage initialCat={route.id} key={route.id} />; break;
    case "product":  page = <ProductPage id={route.id} key={route.id} />; break;
    case "about":    page = <AboutPage />; break;
    default:         page = <HomePage />;
  }
  return (
    <div data-screen-label={route.name}>
      <TopNav />
      {page}
      <Footer />
      {!unlocked && <SubscribeGate />}
    </div>
  );
}

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