reblend-ui
Version:
Utilities for creating robust overlay components
48 lines (47 loc) • 1.55 kB
TypeScript
import { ComponentRef, MouseEventHandler } from 'reblendjs';
import { EventKey, DynamicComponent } from './types';
import Button from './Button';
export interface DropdownItemProps extends Reblend.HTMLAttributes<HTMLElement> {
/**
* Element used to render the component.
*/
as?: Reblend.ElementType;
/**
* Highlight the menu item as active.
*/
active?: boolean;
/**
* Disable the menu item, making it unselectable.
*/
disabled?: boolean;
/**
* Value passed to the `onSelect` handler, useful for identifying the selected menu item.
*/
eventKey?: EventKey;
/**
* HTML `href` attribute corresponding to `a.href`.
*/
href?: string;
ref?: ComponentRef;
}
interface UseDropdownItemOptions {
key?: EventKey | null;
href?: string;
active?: boolean;
disabled?: boolean;
onClick?: MouseEventHandler;
}
/**
* Create a dropdown item. Returns a set of props for the dropdown item component
* including an `onClick` handler that prevents selection when the item is disabled
*/
export declare function useDropdownItem({ key, href, active, disabled, onClick, }: UseDropdownItemOptions): readonly [{
readonly onClick: (event: any) => void;
readonly 'aria-disabled': true | undefined;
readonly 'aria-selected': boolean | undefined;
readonly "data-rr-ui-dropdown-item": "";
}, {
readonly isActive: boolean | undefined;
}];
declare const DropdownItem: DynamicComponent<typeof Button, DropdownItemProps>;
export default DropdownItem;