API
interface DMenuItem<ID extends DId> {
id: ID;
title: React.ReactNode;
type: 'item' | 'group' | 'sub';
icon?: React.ReactNode;
disabled?: boolean;
children?: DMenuItem<ID>[];
}
interface DMenuProps<ID extends DId, T extends DMenuItem<ID>> extends Omit<React.HTMLAttributes<HTMLElement>, 'children'> {
dList: T[];
dWidth?: string | number;
dActive?: ID | null;
dExpands?: ID[];
dMode?: DMenuMode;
dExpandOne?: boolean;
dExpandTrigger?: 'hover' | 'click';
onActiveChange?: (id: T['id'], item: T) => void;
onExpandsChange?: (ids: T['id'][], items: T[]) => void;
}
| Property |
Description |
Default |
Version |
| dList |
List of data |
- |
|
| dWidth |
Set menu width |
'auto' |
|
| dActive |
Active menu item, controlled, default null |
- |
|
| dExpands |
Expand menu item, controlled, default [] |
- |
|
| dMode |
Set menu display mode |
vertical |
|
| dExpandOne |
Expand at most one item at the same level |
false |
|
| dExpandTrigger |
The behavior that triggers the expansion |
- |
|
| onActiveChange |
Callback for active menu item changes |
- |
|
| onExpandsChange |
Callback for expand menu item changes |
- |
|