mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-06-06 06:19:58 +08:00
react-select: Fixed renderer handlers return types. (#18574)
* Fixed renderer handlers return types. * Added tests to render null or false elements. * Updated tests. * Updated naming. * Created and implemented type `HandlerRendererResult`.
This commit is contained in:
committed by
Sheetal Nandi
parent
a0fa31362f
commit
1e211cd0d4
12
types/react-select/index.d.ts
vendored
12
types/react-select/index.d.ts
vendored
@@ -20,14 +20,16 @@ declare namespace ReactSelectClass {
|
||||
class Async extends React.Component<ReactAsyncSelectProps> { }
|
||||
class AsyncCreatable extends React.Component<ReactAsyncSelectProps & ReactCreatableSelectProps> { }
|
||||
|
||||
type HandlerRendererResult = JSX.Element | null | false;
|
||||
|
||||
// Handlers
|
||||
type FocusOptionHandler = (option: Option) => void;
|
||||
type SelectValueHandler = (option: Option) => void;
|
||||
type ArrowRendererHandler = (props: ArrowRendererProps) => JSX.Element;
|
||||
type ArrowRendererHandler = (props: ArrowRendererProps) => HandlerRendererResult;
|
||||
type FilterOptionHandler = (option: Option, filter: string) => Option;
|
||||
type FilterOptionsHandler = (options: Options, filter: string, currentValues: Options) => Options;
|
||||
type InputRendererHandler = (props: { [key: string]: any }) => JSX.Element;
|
||||
type MenuRendererHandler = (props: MenuRendererProps) => JSX.Element;
|
||||
type InputRendererHandler = (props: { [key: string]: any }) => HandlerRendererResult;
|
||||
type MenuRendererHandler = (props: MenuRendererProps) => HandlerRendererResult;
|
||||
type OnCloseHandler = () => void;
|
||||
type OnInputChangeHandler = (inputValue: string) => void;
|
||||
type OnInputKeyDownHandler = React.KeyboardEventHandler<HTMLDivElement>;
|
||||
@@ -35,8 +37,8 @@ declare namespace ReactSelectClass {
|
||||
type OnOpenHandler = () => void;
|
||||
type OnFocusHandler = React.FocusEventHandler<HTMLDivElement>;
|
||||
type OnBlurHandler = React.FocusEventHandler<HTMLDivElement>;
|
||||
type OptionRendererHandler = (option: Option) => JSX.Element;
|
||||
type ValueRendererHandler = (option: Option) => JSX.Element;
|
||||
type OptionRendererHandler = (option: Option) => HandlerRendererResult;
|
||||
type ValueRendererHandler = (option: Option) => HandlerRendererResult;
|
||||
type OnValueClickHandler = (value: string, event: React.MouseEvent<HTMLAnchorElement>) => void;
|
||||
type IsOptionUniqueHandler = (arg: { option: Option, options: Options, labelKey: string, valueKey: string }) => boolean;
|
||||
type IsValidNewOptionHandler = (arg: { label: string }) => boolean;
|
||||
|
||||
@@ -151,4 +151,24 @@ describe("Examples", () => {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
it("Input render with false renderer props", () => {
|
||||
<ReactSelect
|
||||
arrowRenderer={props => false}
|
||||
inputRenderer={props => false}
|
||||
menuRenderer={props => false}
|
||||
optionRenderer={props => false}
|
||||
valueRenderer={props => false}
|
||||
/>;
|
||||
});
|
||||
|
||||
it("Input render with null renderer props", () => {
|
||||
<ReactSelect
|
||||
arrowRenderer={props => null}
|
||||
inputRenderer={props => null}
|
||||
menuRenderer={props => null}
|
||||
optionRenderer={props => null}
|
||||
valueRenderer={props => null}
|
||||
/>;
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user