react-multiselect-dropdown-configurable
Version:
fully configurable react multi select component
62 lines (58 loc) • 1.69 kB
TypeScript
import * as react_jsx_runtime from 'react/jsx-runtime';
import React, { ReactNode } from 'react';
interface Option {
value: string | number;
label: string;
key?: string;
disabled?: boolean;
checked?: boolean;
data?: any;
}
interface ItemRendererProps {
checked: boolean;
option: {
value: string | number;
label: string;
data?: any;
};
onClick: () => void;
disabled: boolean;
}
interface SelectProps {
options: Option[];
value: Option[];
onChange?: any;
PillRenderer?: ({ selectedOption, handlePillClose }: {
selectedOption: any;
handlePillClose: any;
}) => React.JSX.Element;
ItemRenderer?: (props: ItemRendererProps) => React.JSX.Element;
showCheckedOnSelectedItems?: boolean;
ArrowRenderer?: ({ expanded }: {
expanded: any;
}) => React.JSX.Element;
isLoading?: boolean;
disabled?: boolean;
disableSearch?: boolean;
shouldToggleOnHover?: boolean;
searchFilterFunction?: (options: Option[], filterString: string) => Promise<Option[]> | Option[];
overrideStrings?: {
[key: string]: string;
};
labelledBy: string;
className?: string;
onMenuToggle?: any;
ClearIcon?: ReactNode;
debounceDuration?: number;
HideClearIcon?: ReactNode;
defaultIsOpen?: boolean;
isOpen?: boolean;
isCreatable?: boolean;
onCreateOption?: (createText: string) => Option;
closeOnChangedValue?: boolean;
isError?: boolean;
maxPillsToRender?: number;
hidePickedOptions?: boolean;
}
declare const MultiSelect: (props: SelectProps) => react_jsx_runtime.JSX.Element;
export { MultiSelect as default };