@gravity-ui/uikit
Version:
Gravity UI base styling and components
27 lines (26 loc) • 790 B
TypeScript
export type UseSelectOption<T = unknown> = T & {
value: string;
};
export type UseOpenProps = {
defaultOpen?: boolean;
open?: boolean;
onClose?: () => void;
onOpenChange?: (open: boolean) => void;
};
export type UseSelectProps = {
value?: string[];
defaultValue?: string[];
multiple?: boolean;
onUpdate?: (value: string[]) => void;
disabled?: boolean;
} & UseOpenProps;
export type UseSelectResult<T> = {
open: boolean;
value: string[];
activeIndex: number | undefined;
handleSelection: (option: UseSelectOption<T>) => void;
handleClearValue: () => void;
setValue: (value: string[]) => void;
toggleOpen: (val?: boolean | undefined) => void;
setActiveIndex: React.Dispatch<React.SetStateAction<number | undefined>>;
};