Skip to content

Sidebar ​

La navigation principale.

Trois choses la distinguent d'une liste de liens : elle descend aussi profond que l'arborescence du produit, elle se réduit sans enfermer ses sous-menus, et elle ne montre que ce que la session a le droit de voir.

Installation ​

bash
sia-ui add sidebar

Ou par le paquet, sans rien copier :

tsx
import { Sidebar } from "@sia-ui/react-web";

Props ​

PropTypeDéfautDescription
* itemsSidebarEntry[]—
accordionbooleanfalseUne seule branche ouverte par niveau.
activeKeystring—La clé de l'entrée courante. Sa branche s'ouvre d'elle-même.
ariaLabelstring—
can(rule: PermissionRule) => boolean—Évalue les règles de permission des entrées. Vient d'un createAccessLayer de @sia-ui/headless, ou de n'importe quelle fonction. Absent, aucune entrée n'est filtrée.
classNamestring—
collapsedbooleanfalseLe rail : les libellés disparaissent, les sous-menus passent en volet. Ils y restent atteignables — c'est tout l'objet du volet. Un menu réduit qui enferme ses enfants n'est pas réduit, il est cassé.
defaultOpenKeysstring[]—
footerReactNode—
headerReactNode—
onNavigate(item: SidebarItem) => void—
onOpenKeysChange(keys: string[]) => void—
openKeysstring[]—Les branches ouvertes. Non fourni, le composant les gère lui-même.
overlayPropsPartial<Omit<OverlayProps, "children" | "open" | "onOpenChange" | "anchorRef">>—Réglages des volets du rail — placement, décalage, classe. L'objet descend jusqu'aux nœuds mémoïsés : le passer stable (constante, useMemo) plutôt qu'en littéral, sans quoi l'arbre se redessine à chaque rendu du parent.
renderLinkSidebarRenderLink—
side"left" | "right"leftDe quel côté sortent les volets du rail.
size"sm" | "md" | "lg"md
toneComponentToneprimary
variant"default" | "filled" | "floating"default

* obligatoire.

Voir aussi ​

Publié sous licence MIT.