UI: Menu
Menu mit Einträgen, Trennlinien, Popover und Auslöser, dazu useDeliberatePress für destruktive Einträge. Importiere die Token-Datei einmal (@pithyx/ui/tokens.css) und umschließe die App mit UiProvider; siehe @pithyx/ui.
Beim Build aus den TSDoc-Kommentaren von @pithyx/ui 1.0.0-rc.9 erzeugt; der Text unter den Überschriften ist der Kommentar im Quelltext und bleibt Englisch.
Schnittstellen
Abschnitt betitelt „Schnittstellen“MenuItemProps
Abschnitt betitelt „MenuItemProps“The props of MenuItem.
Erweitert
Abschnitt betitelt „Erweitert“Omit<AriaMenuItemProps,"className"|"children">
Eigenschaften
Abschnitt betitelt „Eigenschaften“optional icon?: ReactNode;An icon before the label.
children
Abschnitt betitelt „children“children: ReactNode;The label; a string is also the text for type-ahead.
optional tone?: "danger" | "default";danger for a destructive entry; default when left out.
shortcut?
Abschnitt betitelt „shortcut?“optional shortcut?: string;Keyboard shortcut shown at the end of the item.
Variablen
Abschnitt betitelt „Variablen“MenuTrigger
Abschnitt betitelt „MenuTrigger“const MenuTrigger: (props) => Element | null = AriaMenuTrigger;Opens a menu from its trigger: the first child is the trigger (a Button or IconButton), the second a
MenuPopover with the Menu. It is React Aria’s MenuTrigger; its props (isOpen, onOpenChange,
trigger) are documented there.
Parameter
Abschnitt betitelt „Parameter“| Parameter | Typ | Beschreibung |
|---|---|---|
props |
MenuTriggerProps |
React Aria’s menu trigger props and the two children. |
Rückgabewert
Abschnitt betitelt „Rückgabewert“Element | null
The trigger with its menu.
Funktionen
Abschnitt betitelt „Funktionen“MenuPopover()
Abschnitt betitelt „MenuPopover()“function MenuPopover(props): Element;The popover a Menu opens in, next to its trigger inside a MenuTrigger.
Parameter
Abschnitt betitelt „Parameter“| Parameter | Typ | Beschreibung |
|---|---|---|
props |
Omit<PopoverProps, "className"> & object |
React Aria’s popover props (placement, offset). |
Rückgabewert
Abschnitt betitelt „Rückgabewert“Element
The popover.
function Menu<T>(props): Element;A menu of MenuItems and MenuSeparators, with keyboard and touch handling.
Typenparameter
Abschnitt betitelt „Typenparameter“| Typenparameter |
|---|
T extends object |
Parameter
Abschnitt betitelt „Parameter“| Parameter | Typ | Beschreibung |
|---|---|---|
props |
Omit<MenuProps<T>, "className"> & object |
React Aria’s menu props (onAction, selectionMode, items). |
Rückgabewert
Abschnitt betitelt „Rückgabewert“Element
The menu.
Beispiel
Abschnitt betitelt „Beispiel“<MenuTrigger> <IconButton label="More"> <IconDots size={18} /> </IconButton> <MenuPopover> <Menu onAction={(id) => run(String(id))}> <MenuItem id="rename" shortcut="F2"> Rename </MenuItem> <MenuSeparator /> <MenuItem id="delete" tone="danger"> Delete </MenuItem> </Menu> </MenuPopover></MenuTrigger>MenuItem()
Abschnitt betitelt „MenuItem()“function MenuItem(props): Element;One entry of a menu, with an optional icon and key hint. It shows a check mark in a menu with a selectionMode and
a chevron when it opens a submenu.
Parameter
Abschnitt betitelt „Parameter“| Parameter | Typ | Beschreibung |
|---|---|---|
props |
MenuItemProps |
React Aria’s menu item props (id, onAction, isDisabled, textValue) plus icon, tone and shortcut. |
Rückgabewert
Abschnitt betitelt „Rückgabewert“Element
The menu item.
MenuSeparator()
Abschnitt betitelt „MenuSeparator()“function MenuSeparator(): Element;A line between groups of menu entries.
Rückgabewert
Abschnitt betitelt „Rückgabewert“Element
The separator.
useDeliberatePress()
Abschnitt betitelt „useDeliberatePress()“function useDeliberatePress(): object;React Aria runs a menu item’s action when a mouse press that began elsewhere, on the menu’s trigger, is released
over the item (press, drag, release). A menu that opens under the pointer can then act on a plain click of its
trigger. Destructive items take their action only from a press that started on them: spread pressProps on the
item and ask confirm() in the menu’s action handler.
Rückgabewert
Abschnitt betitelt „Rückgabewert“The props for the item and the check for the action handler.
pressProps
Abschnitt betitelt „pressProps“pressProps: object;Spread on the destructive item.
pressProps.onPressStart
Abschnitt betitelt „pressProps.onPressStart“onPressStart: () => void;Arms the item when a press starts on it.
Rückgabewert
Abschnitt betitelt „Rückgabewert“void
confirm
Abschnitt betitelt „confirm“confirm: () => boolean;Whether the action comes from a press that started on the item; disarms it.
Rückgabewert
Abschnitt betitelt „Rückgabewert“boolean
Beispiel
Abschnitt betitelt „Beispiel“const deliberate = useDeliberatePress();<Menu onAction={(id) => id === 'delete' && deliberate.confirm() && remove()}> <MenuItem id="delete" tone="danger" {...deliberate.pressProps}> Delete </MenuItem></Menu>;