From da31cb9651929b4662bb5447c5c7e7eeb8502fcc Mon Sep 17 00:00:00 2001 From: L-x-C Date: Tue, 6 Jun 2017 11:12:00 +0800 Subject: [PATCH 01/10] add afterDropdownVisibleChange --- examples/single.js | 5 +++++ src/Select.jsx | 2 ++ 2 files changed, 7 insertions(+) diff --git a/examples/single.js b/examples/single.js index fb9c3606d..db5bd5d77 100644 --- a/examples/single.js +++ b/examples/single.js @@ -38,6 +38,10 @@ class Test extends React.Component { console.log('onFocus'); }; + afterDropdownVisibleChange = (open, popupDOMNode) => { + console.log('afterDropdownVisibleChange', open, popupDOMNode); + }; + render() { if (this.state.destroy) { return null; @@ -53,6 +57,7 @@ class Test extends React.Component { value={this.state.value} placeholder="placeholder" dropdownMenuStyle={{ maxHeight: 200, overflow: 'auto' }} + afterDropdownVisibleChange={this.afterDropdownVisibleChange} style={{ width: 500 }} onBlur={this.onBlur} onFocus={this.onFocus} diff --git a/src/Select.jsx b/src/Select.jsx index c26244474..cdc3676a2 100644 --- a/src/Select.jsx +++ b/src/Select.jsx @@ -55,6 +55,7 @@ const Select = createClass({ onSelect: noop, onSearch: noop, onDeselect: noop, + afterDropdownVisibleChange: () => {}, showArrow: true, dropdownMatchSelectWidth: true, dropdownStyle: {}, @@ -538,6 +539,7 @@ const Select = createClass({ if (open) { this.maybeFocus(open, needFocus); } + this.props.afterDropdownVisibleChange(open, this.getPopupDOMNode()); }); }, setInputValue(inputValue, fireSearch = true) { From edf02ff737f9319b1b37435c421357b322ef4e8c Mon Sep 17 00:00:00 2001 From: L-x-C Date: Wed, 14 Jun 2017 14:43:15 +0800 Subject: [PATCH 02/10] firstActiveValue --- README.md | 1 + examples/single.js | 6 +----- src/DropdownMenu.jsx | 8 +++++--- src/Select.jsx | 3 +-- src/SelectTrigger.jsx | 1 + 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f584db03e..97e2f0d0e 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ React.render(c, container); |optionLabelProp | which prop value of option will render as content of select | String | 'value' | |defaultValue | initial selected option(s) | String/Array | - | |value | current selected option(s) | String/Array/{key:String, label:React.Node}/Array<{key, label}> | - | +|firstActiveValue | first active value when there is no value | String/Array | - | |labelInValue| whether to embed label in value, see above value type | Bool | false | |onChange | called when select an option or input value change(combobox) | function(value) | - | |onSearch | called when input changed | function | - | diff --git a/examples/single.js b/examples/single.js index db5bd5d77..93221468a 100644 --- a/examples/single.js +++ b/examples/single.js @@ -38,10 +38,6 @@ class Test extends React.Component { console.log('onFocus'); }; - afterDropdownVisibleChange = (open, popupDOMNode) => { - console.log('afterDropdownVisibleChange', open, popupDOMNode); - }; - render() { if (this.state.destroy) { return null; @@ -57,7 +53,6 @@ class Test extends React.Component { value={this.state.value} placeholder="placeholder" dropdownMenuStyle={{ maxHeight: 200, overflow: 'auto' }} - afterDropdownVisibleChange={this.afterDropdownVisibleChange} style={{ width: 500 }} onBlur={this.onBlur} onFocus={this.onFocus} @@ -65,6 +60,7 @@ class Test extends React.Component { optionLabelProp="children" optionFilterProp="text" onChange={this.onChange} + firstActiveValue="2" >