TheBird

App.jsx

773 B · jsx · 20 lines

1import { Nav, useRouter } from "./client/router.ts";2import { got } from "./kinds.js";3import { Footer } from "./components/Footer.jsx";4import { Header } from "./components/Header.jsx";5import { NotFound } from "./pages/NotFound.jsx";67export function App({ page, chrome }) {8  const [view, navigate] = useRouter({ page, chrome });9  const One = got(view.page.kind) ?? NotFound;10  return (11    <Nav.Provider value={navigate}>12      <Header route={view.chrome.route} catalog={view.chrome.catalog} fly={view.chrome.fly} />13      <div className="veil"></div>14      <main id="main">15        <One key={view.chrome.route} {...view.page.props} now={view.chrome.now} />16      </main>17      <Footer catalog={view.chrome.catalog} now={view.chrome.now} />18    </Nav.Provider>19  );20}