Skip to content

DropdownMenu ​

Un menu accroché à un bouton.

Il repose sur Overlay : le repositionnement quand la place manque en bas, la fermeture au clic extérieur et à Échap sont déjà là et ne sont pas réécrites ici.

Installation ​

bash
sia-ui add dropdown-menu

Ou par le paquet, sans rien copier :

tsx
import { DropdownMenu, MenuList, ContextMenu } from "@sia-ui/react-web";

Props de MenuList ​

Le panneau seul, sans déclencheur.

Extrait parce que DropdownMenu et ContextMenu n'ont en commun que lui : tout le reste — l'ancrage, le geste d'ouverture — diffère.

PropTypeDéfautDescription
* activeIndexnumber—Index actif, piloté par le parent pour que le clavier suive.
* itemsMenuEntry[]—
* onActiveIndexChange(index: number) => void—
* onClose() => void—
* onSelect(item: MenuItem) => void—
classNamestring—
idstring—

Props de DropdownMenu ​

PropTypeDéfautDescription
* itemsMenuEntry[]—
classNamestring—
defaultOpenbooleanfalse
matchTriggerWidthbooleanfalse
onOpenChange(open: boolean) => void—
onSelect(item: MenuItem) => void—
openboolean—
overlayPropsPartial<Omit<OverlayProps, "children" | "open" | "onOpenChange" | "anchorRef">>—Le positionnement du panneau : décalage, marge au bord de l'écran, id.
placementOverlayPlacementbottom-start

Props de ContextMenu ​

Le même menu, ouvert au clic droit sur une zone.

L'ancre est un point, pas un élément : un repère de taille nulle est posé aux coordonnées du pointeur et confié à Overlay, qui ne voit pas la différence. C'est ce qui évite un second moteur de placement.

PropTypeDéfautDescription
* itemsMenuEntry[]—
classNamestring—
onSelect(item: MenuItem) => void—
overlayPropsPartial<Omit<OverlayProps, "children" | "open" | "onOpenChange" | "anchorRef">>—Le positionnement du panneau, comme pour DropdownMenu.

* obligatoire.

Voir aussi ​

Publié sous licence MIT.