/// /// /// import * as React from "react"; import * as ReactDOM from "react-dom"; import { Option, ReactSelectProps, ReactAsyncSelectProps, MenuRendererProps } from "react-select-props"; import Select = require("react-select"); const CustomOption = React.createClass({ propTypes: { children: React.PropTypes.node, className: React.PropTypes.string, isDisabled: React.PropTypes.bool, isFocused: React.PropTypes.bool, isSelected: React.PropTypes.bool, onFocus: React.PropTypes.func, onSelect: React.PropTypes.func, option: React.PropTypes.object.isRequired, }, handleMouseDown (event: Event) { event.preventDefault(); event.stopPropagation(); this.props.onSelect(this.props.option, event); }, handleMouseEnter (event: Event) { this.props.onFocus(this.props.option, event); }, handleMouseMove (event: Event) { if (this.props.isFocused) return; this.props.onFocus(this.props.option, event); }, render () { return (
{this.props.children}
); } }); const CustomValue = React.createClass({ propTypes: { children: React.PropTypes.node, placeholder: React.PropTypes.string, value: React.PropTypes.object }, render () { return (
{this.props.children}
); } }); class SelectTest extends React.Component, {}> { render() { const options: Option[] = [{ label: "Foo", value: "bar" }]; const onChange = (value: any) => console.log(value); const renderMenu = ({ focusedOption, focusOption, labelKey, options, selectValue, valueArray }: MenuRendererProps) => { return
}; const onOpen = () => { return; }; const onClose = () => { return; }; const optionRenderer = (option: Option) => {option.label} 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