armstrong-react
Version:
Rocketmakers Armstrong library of React components
55 lines (54 loc) • 1.8 kB
TypeScript
import * as React from "react";
export interface IDropdownOption {
id: number;
name: string;
data?: any;
}
export interface IDropdownSelectProps extends React.Props<DropdownSelect> {
className?: string;
value?: IDropdownOption | IDropdownOption[];
minimumLength?: number;
placeholder?: string;
searchPlaceholder?: string;
noResultsMessage?: string;
options?: IDropdownOption[];
remoteThrottle?: number;
remoteQuery?: (query: string) => Promise<IDropdownOption[]>;
remoteQueryOnOpen?: boolean;
hasGoButton?: boolean;
goButtonContent?: JSX.Element | string;
onSelected?: (selectedOption: IDropdownOption | IDropdownOption[]) => void;
visibleItems?: number;
canClear?: boolean;
disabled?: boolean;
multiSelect?: boolean;
}
export interface IDropdownSelectState {
filteredOptions?: IDropdownOption[];
query?: string;
open?: boolean;
selectedValue?: IDropdownOption | IDropdownOption[];
selectedIndex?: number;
remoteSearching?: boolean;
offsetIndex?: number;
}
export declare class DropdownSelect extends React.Component<IDropdownSelectProps, IDropdownSelectState> {
private timer;
private itemHeight;
static defaultProps: {
remoteThrottle: number;
minimumLength: number;
};
constructor(props: IDropdownSelectProps);
filterRemote(query: string, immediate?: boolean): void;
filter(query: string): void;
focusInput(e: any): void;
handleEvent(e: any): void;
componentWillMount(): void;
componentWillReceiveProps(newProps: IDropdownSelectProps): void;
checkKey(e: any): boolean;
constrainIndex(): void;
handleSelection(options: IDropdownOption | IDropdownOption[]): void;
buttonClick(): void;
render(): JSX.Element;
}