UNPKG

@bothub-chat/ui

Version:

Bothub UI Components

41 lines (40 loc) 1.92 kB
import { SelectFieldChangeEventHandler, SelectFieldDataItem, SelectFieldMultiChangeEventHandler, SelectFieldMultiValueChangeEventHandler, SelectFieldPlacement, SelectFieldValueChangeEventHandler } from './types'; import { ValueType } from '.'; export interface UseSelectFieldDefaultProps { multiple?: false; value?: SelectFieldDataItem | null; onChange?: SelectFieldChangeEventHandler; onValueChange?: SelectFieldValueChangeEventHandler; } export interface UseSelectFieldMultiProps { multiple: true; value?: SelectFieldDataItem[]; onChange?: SelectFieldMultiChangeEventHandler; onValueChange?: SelectFieldMultiValueChangeEventHandler; } export type UseSelectFieldUnionProps = UseSelectFieldDefaultProps | UseSelectFieldMultiProps; export type UseSelectFieldProps = { disabled?: boolean; placement?: SelectFieldPlacement; contentHeight?: number | string; onClose?: () => void; onSelectClick?: () => void; } & UseSelectFieldUnionProps; export type UseSelectFieldReturnType = ReturnType<typeof useSelectField>; export declare const useSelectField: <TriggerType extends HTMLElement = HTMLDivElement>({ value: initialValue, multiple, disabled, placement: initialPlacement, contentHeight, onClose, onSelectClick, onChange, onValueChange, }: UseSelectFieldProps) => { x: number; y: number; width: number; isOpen: boolean; triggerRef: import("react").RefObject<TriggerType>; selectModalRef: import("react").RefObject<HTMLDivElement>; placement: "top-left" | "top-right" | "bottom-left" | "bottom-center"; isKeyboardOpen: import("react").MutableRefObject<boolean>; value: ValueType; disabled: boolean; multiple: boolean; contentHeight: string | number | undefined; handleInputClick: (native: boolean, event: React.MouseEvent<HTMLElement>) => void; handleClose: () => void; setValue: (value: ValueType) => void; };