From: 偏右 Date: Sun, 22 Oct 2017 08:21:13 +0000 (+0800) Subject: Merge pull request #60 from shoaibbhimani/master X-Git-Tag: 3.0.0~8 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=2fb27d673619b7bdd70178e617965a009fa72874;hp=0e4fd1626e460bd52a82de3f12f84d88f652dd7e;p=github%2Ffretlink%2Ftime-picker.git Merge pull request #60 from shoaibbhimani/master Add keydown function on header input --- diff --git a/.gitignore b/.gitignore index 2ad822e..94761bf 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,5 @@ dist build lib es -coverage \ No newline at end of file +coverage +npm-debug.log.* diff --git a/npm-debug.log.1427937311 b/npm-debug.log.1427937311 deleted file mode 100644 index e69de29..0000000 diff --git a/src/TimePicker.jsx b/src/TimePicker.jsx index 0b985dd..271515d 100644 --- a/src/TimePicker.jsx +++ b/src/TimePicker.jsx @@ -42,6 +42,8 @@ export default class Picker extends Component { onChange: PropTypes.func, onOpen: PropTypes.func, onClose: PropTypes.func, + onFocus: PropTypes.func, + onBlur: PropTypes.func, addon: PropTypes.func, name: PropTypes.string, autoComplete: PropTypes.string, @@ -70,6 +72,8 @@ export default class Picker extends Component { onChange: noop, onOpen: noop, onClose: noop, + onFocus: noop, + onBlur: noop, addon: noop, use12Hours: false, onKeyDown: noop, @@ -234,6 +238,7 @@ export default class Picker extends Component { const { prefixCls, placeholder, placement, align, disabled, transitionName, style, className, getPopupContainer, name, autoComplete, + onFocus, onBlur, } = this.props; const { open, value } = this.state; const popupClassName = this.getPopupClassName(); @@ -263,6 +268,8 @@ export default class Picker extends Component { onKeyDown={this.onKeyDown} disabled={disabled} value={value && value.format(this.getFormat()) || ''} autoComplete={autoComplete} + onFocus={onFocus} + onBlur={onBlur} /> diff --git a/tests/TimePicker.spec.jsx b/tests/TimePicker.spec.jsx index 0dd6c10..d698e48 100644 --- a/tests/TimePicker.spec.jsx +++ b/tests/TimePicker.spec.jsx @@ -208,4 +208,40 @@ describe('TimePicker', () => { }); }); }); + + describe('other operations', () => { + it('focus/blur correctly', (done) => { + let focus = false; + let blur = false; + + const picker = renderPicker({ + onFocus: () => { + focus = true; + }, + onBlur: () => { + blur = true; + }, + }); + expect(picker.state.open).not.to.be.ok(); + const input = TestUtils.scryRenderedDOMComponentsWithClass(picker, + 'rc-time-picker-input')[0]; + + async.series([(next) => { + Simulate.focus(input); + setTimeout(next, 100); + }, (next) => { + expect(picker.state.open).to.be(false); + + Simulate.blur(input); + setTimeout(next, 100); + }, (next) => { + expect(focus).to.be(true); + expect(blur).to.be(true); + + next(); + }], () => { + done(); + }); + }); + }); });