@vtex/admin-ui
Version:
> VTEX admin component library
26 lines (25 loc) • 860 B
TypeScript
import type { ReactNode, Ref } from 'react';
import { useSelect, UseSelectReturnValue } from 'downshift';
import type { ButtonProps } from '../../button';
import type { SystemComponent } from '../../types';
export declare const Dropdown: <T>(props: DropdownProps<T>, ref: Ref<HTMLDivElement>) => JSX.Element;
export { useSelect as useDropdownState };
export { UseSelectReturnValue as UseDropdownReturnValue };
export interface DropdownProps<T> extends SystemComponent, Pick<ButtonProps, 'variant' | 'size' | 'disabled'> {
/**
* aria-label. will be visually hidden
*/
label: string;
/**
* return of useDropdownState
*/
state: UseSelectReturnValue<T>;
/**
* array of items
*/
items: T[];
/**
* Custom item rendering
*/
renderItem?: (item: T | null) => ReactNode;
}