@trussworks/react-uswds
Version:
React USWDS 3 component library
46 lines (45 loc) • 1.22 kB
TypeScript
import { default as React } from 'react';
import { ComboBoxOption, CustomizableFilter, FocusMode } from './ComboBox';
export declare enum ActionTypes {
SELECT_OPTION = 0,
CLEAR = 1,
OPEN_LIST = 2,
CLOSE_LIST = 3,
FOCUS_OPTION = 4,
UPDATE_FILTER = 5,
BLUR = 6,
CLEAR_SELECTION = 7,
FOCUS_INPUT = 8
}
export type Action = {
type: ActionTypes.SELECT_OPTION;
option: ComboBoxOption;
} | {
type: ActionTypes.CLEAR;
} | {
type: ActionTypes.OPEN_LIST;
} | {
type: ActionTypes.CLOSE_LIST;
} | {
type: ActionTypes.FOCUS_OPTION;
option: ComboBoxOption;
} | {
type: ActionTypes.UPDATE_FILTER;
value: string;
} | {
type: ActionTypes.BLUR;
} | {
type: ActionTypes.CLEAR_SELECTION;
} | {
type: ActionTypes.FOCUS_INPUT;
};
export interface State {
isOpen: boolean;
selectedOption?: ComboBoxOption;
focusedOption?: ComboBoxOption;
focusMode: FocusMode;
filteredOptions: ComboBoxOption[];
inputValue: string;
statusText: string;
}
export declare const useComboBox: (initialState: State, optionsList: ComboBoxOption[], disableFiltering: boolean, customizableFilter: CustomizableFilter) => [State, React.Dispatch<Action>];