react-select: fix issue with props ref not set to correct type, and update tests to test additional React.Props types

This commit is contained in:
Charles Arnold
2016-06-28 09:35:31 -07:00
parent 5c8b964686
commit 1defb4cf40
2 changed files with 72 additions and 72 deletions

View File

@@ -5,7 +5,7 @@
import * as React from "react";
import * as ReactDOM from "react-dom";
import { Option, MenuRendererProps } from "react-select-props";
import { Option, ReactSelectProps, ReactAsyncSelectProps, MenuRendererProps } from "react-select-props";
import Select = require("react-select");
const CustomOption = React.createClass({
@@ -78,42 +78,43 @@ class SelectTest extends React.Component<React.Props<{}>, {}> {
const onClose = () => { return; };
const optionRenderer = (option: Option) => <span>{option.label}</span>
const selectProps: ReactSelectProps = {
name: "test-select",
className: "test-select",
key: "1",
options: options,
optionRenderer: optionRenderer,
allowCreate: true,
autofocus: true,
autosize: true,
clearable: true,
escapeClearsValue: true,
ignoreAccents: true,
joinValues: false,
matchPos: "any",
matchProp: "any",
menuContainerStyle: {},
menuRenderer: renderMenu,
menuStyle: {},
multi: true,
onMenuScrollToBottom: () => {},
onValueClick: onChange,
onOpen: onOpen,
onClose: onClose,
openAfterFocus: false,
optionComponent: CustomOption,
required: false,
resetValue: "resetValue",
scrollMenuIntoView: false,
valueKey: "github",
labelKey: "name",
onChange: onChange,
value: options,
valueComponent: CustomValue,
};
return <div>
<Select
name="test-select"
className="test-select"
key="1"
options={options}
optionRenderer={optionRenderer}
allowCreate={true}
autofocus={true}
autosize={true}
clearable={true}
escapeClearsValue={true}
ignoreAccents={true}
joinValues={false}
matchPos={"any"}
matchProp={"any"}
menuContainerStyle={{}}
menuRenderer={renderMenu}
menuStyle={{}}
multi={true}
onMenuScrollToBottom={() => {}}
onValueClick={onChange}
onOpen={onOpen}
onClose={onClose}
openAfterFocus={false}
optionComponent={CustomOption}
required={false}
resetValue={"resetValue"}
scrollMenuIntoView={false}
valueKey="github"
labelKey="name"
onChange={onChange}
simpleValue
value={options}
valueComponent={CustomValue}
/>
<Select {...selectProps} />
</div>;
}
}
@@ -128,29 +129,32 @@ class SelectAsyncTest extends React.Component<React.Props<{}>, {}> {
};
const options: Option[] = [{ label: "Foo", value: "bar" }];
const onChange = (value: any) => console.log(value);
const asyncSelectProps: ReactAsyncSelectProps = {
name: "test-select",
className: "test-select",
key: "1",
matchPos: "any",
matchProp: "any",
multi: true,
onValueClick: onChange,
valueKey: "github",
labelKey: "name",
onChange: onChange,
simpleValue: undefined,
value: options,
loadOptions: getOptions,
cache: {},
ignoreAccents: false,
ignoreCase: true,
isLoading: false,
minimumInput: 5,
searchPromptText: "search...",
searchingText: "searching...",
};
return <div>
<Select.Async
name="test-select"
className="test-select"
key="1"
matchPos={"any"}
matchProp={"any"}
multi={true}
onValueClick={onChange}
valueKey="github"
labelKey="name"
onChange={onChange}
simpleValue
value={options}
loadOptions={getOptions}
cache={{}}
ignoreAccents={false}
ignoreCase={{}}
isLoading={false}
minimumInput={5}
searchPromptText={"search..."}
searchingText={"searching..."}
/>
<Select.Async {...asyncSelectProps} />
</div>;
}

View File

@@ -62,7 +62,7 @@ declare namespace ReactSelect {
valueArray: Option[];
}
interface ReactSelectProps extends __React.Props<ReactSelect> {
interface ReactSelectProps extends __React.Props<ReactSelectClass> {
/**
* text to display when `allowCreate` is true.
* @default 'Add "{label}"?'
@@ -401,28 +401,24 @@ declare namespace ReactSelect {
searchingText?: string;
}
interface ReactSelect extends __React.ReactElement<ReactSelectProps> { }
interface ReactSelectAsyncClass extends __React.ComponentClass<ReactAsyncSelectProps> {
class ReactSelectAsyncClass extends __React.Component<ReactAsyncSelectProps, {}> {
}
const Async: ReactSelectAsyncClass;
interface ReactSelectClass extends __React.ComponentClass<ReactSelectProps> {
Async: ReactSelectAsyncClass;
class ReactSelectClass extends __React.Component<ReactSelectProps, {}> {
static Async: ReactSelectAsyncClass;
}
}
declare module "react-select" {
const RS: ReactSelect.ReactSelectClass;
export = RS;
export = ReactSelect.ReactSelectClass;
}
declare module "react-select-props" {
interface Option extends ReactSelect.Option {}
interface MenuRendererProps extends ReactSelect.MenuRendererProps {}
interface ReactSelectProps extends ReactSelect.ReactSelectProps {}
interface ReactAsyncSelectProps extends ReactSelect.ReactAsyncSelectProps {}
import Option = ReactSelect.Option;
import MenuRendererProps = ReactSelect.MenuRendererProps;
import ReactSelectProps = ReactSelect.ReactSelectProps;
import ReactAsyncSelectProps = ReactSelect.ReactAsyncSelectProps;
export { MenuRendererProps, ReactSelectProps, ReactAsyncSelectProps, Option };
}