Routeurroutage PRISM
routage PRISM

Ce tutoriel utilise le routage par fichiers de PRISM : chaque dossier sous src/app/ devient une URL, avec layouts imbriqués et loaders côté serveur.

Voir la doc du routage →
UIbext/ui
bext/ui

Les composants viennent de bext/ui — un portage fidèle de shadcn/ui pour bext et PRISM, stylé via les tokens de route_css.

Explorer bext/ui →
FREN
Étape 5 sur 11 · Construire la mise en page

Navigation dans la barre latérale

Pilotez la barre latérale depuis un tableau de données et mettez en évidence la route active automatiquement — côté serveur.

La barre latérale doit mettre en évidence la page sur laquelle vous vous trouvez. PRISM transmet le chemin de la requête courante à chaque layout via route.pathname — ainsi le layout connaît l'élément actif sans aucun JavaScript côté client.

Définissez la navigation comme des données, puis marquez le lien actif lors du mapping :

src/app/layout.tsx
const NAV = [
  { label: "Dashboard", href: "/" },
  { label: "Products",  href: "/products" },
  { label: "Orders",    href: "/orders" },
  { label: "Customers", href: "/customers" },
];

const active = (path, href) =>
  href === "/" ? path === "/" : path.startsWith(href);

// inside Layout({ children, route }):
const path = route?.pathname ?? "/";
<nav className="nav">
  {NAV.map((n) => (
    <a key={n.href} href={n.href}
       className={active(path, n.href) ? "on" : ""}>{n.label}</a>
  ))}
</nav>
NOTE
L'aperçu est maintenant sur /products — remarquez que le lien Products est mis en évidence. Toute cette logique s'est exécutée côté serveur ; le HTML est arrivé avec le bon élément déjà actif.
Fichiers
src
app
products
src/app/layout.tsxlecture seule
localhost:3000