diff options
Diffstat (limited to 'src/Panel.jsx')
-rw-r--r-- | src/Panel.jsx | 68 |
1 files changed, 30 insertions, 38 deletions
diff --git a/src/Panel.jsx b/src/Panel.jsx index df128ff..65832ea 100644 --- a/src/Panel.jsx +++ b/src/Panel.jsx | |||
@@ -1,4 +1,5 @@ | |||
1 | import React, { PropTypes } from 'react'; | 1 | import React, { Component } from 'react'; |
2 | import PropTypes from 'prop-types'; | ||
2 | import Header from './Header'; | 3 | import Header from './Header'; |
3 | import Combobox from './Combobox'; | 4 | import Combobox from './Combobox'; |
4 | import moment from 'moment'; | 5 | import moment from 'moment'; |
@@ -17,8 +18,8 @@ function generateOptions(length, disabledOptions, hideDisabledOptions) { | |||
17 | return arr; | 18 | return arr; |
18 | } | 19 | } |
19 | 20 | ||
20 | const Panel = React.createClass({ | 21 | class Panel extends Component { |
21 | propTypes: { | 22 | static propTypes = { |
22 | clearText: PropTypes.string, | 23 | clearText: PropTypes.string, |
23 | prefixCls: PropTypes.string, | 24 | prefixCls: PropTypes.string, |
24 | className: PropTypes.string, | 25 | className: PropTypes.string, |
@@ -39,28 +40,27 @@ const Panel = React.createClass({ | |||
39 | onClear: PropTypes.func, | 40 | onClear: PropTypes.func, |
40 | use12Hours: PropTypes.bool, | 41 | use12Hours: PropTypes.bool, |
41 | addon: PropTypes.func, | 42 | addon: PropTypes.func, |
42 | }, | 43 | }; |
43 | 44 | ||
44 | getDefaultProps() { | 45 | static defaultProps = { |
45 | return { | 46 | prefixCls: 'rc-time-picker-panel', |
46 | prefixCls: 'rc-time-picker-panel', | 47 | onChange: noop, |
47 | onChange: noop, | 48 | onClear: noop, |
48 | onClear: noop, | 49 | disabledHours: noop, |
49 | disabledHours: noop, | 50 | disabledMinutes: noop, |
50 | disabledMinutes: noop, | 51 | disabledSeconds: noop, |
51 | disabledSeconds: noop, | 52 | defaultOpenValue: moment(), |
52 | defaultOpenValue: moment(), | 53 | use12Hours: false, |
53 | use12Hours: false, | 54 | addon: noop, |
54 | addon: noop, | 55 | }; |
55 | }; | ||
56 | }, | ||
57 | 56 | ||
58 | getInitialState() { | 57 | constructor(props) { |
59 | return { | 58 | super(props); |
60 | value: this.props.value, | 59 | this.state = { |
60 | value: props.value, | ||
61 | selectionRange: [], | 61 | selectionRange: [], |
62 | }; | 62 | }; |
63 | }, | 63 | } |
64 | 64 | ||
65 | componentWillReceiveProps(nextProps) { | 65 | componentWillReceiveProps(nextProps) { |
66 | const value = nextProps.value; | 66 | const value = nextProps.value; |
@@ -69,30 +69,22 @@ const Panel = React.createClass({ | |||
69 | value, | 69 | value, |
70 | }); | 70 | }); |
71 | } | 71 | } |
72 | }, | 72 | } |
73 | 73 | ||
74 | onChange(newValue) { | 74 | onChange = (newValue) => { |
75 | this.setState({ value: newValue }); | 75 | this.setState({ value: newValue }); |
76 | this.props.onChange(newValue); | 76 | this.props.onChange(newValue); |
77 | }, | 77 | } |
78 | |||
79 | onClear() { | ||
80 | this.props.onClear(); | ||
81 | }, | ||
82 | 78 | ||
83 | onCurrentSelectPanelChange(currentSelectPanel) { | 79 | onCurrentSelectPanelChange = (currentSelectPanel) => { |
84 | this.setState({ currentSelectPanel }); | 80 | this.setState({ currentSelectPanel }); |
85 | }, | 81 | } |
86 | |||
87 | close() { | ||
88 | this.props.onEsc(); | ||
89 | }, | ||
90 | 82 | ||
91 | render() { | 83 | render() { |
92 | const { | 84 | const { |
93 | prefixCls, className, placeholder, disabledHours, disabledMinutes, | 85 | prefixCls, className, placeholder, disabledHours, disabledMinutes, |
94 | disabledSeconds, hideDisabledOptions, allowEmpty, showHour, showMinute, showSecond, | 86 | disabledSeconds, hideDisabledOptions, allowEmpty, showHour, showMinute, showSecond, |
95 | format, defaultOpenValue, clearText, onEsc, addon, use12Hours, | 87 | format, defaultOpenValue, clearText, onEsc, addon, use12Hours, onClear, |
96 | } = this.props; | 88 | } = this.props; |
97 | const { | 89 | const { |
98 | value, currentSelectPanel, | 90 | value, currentSelectPanel, |
@@ -123,7 +115,7 @@ const Panel = React.createClass({ | |||
123 | disabledMinutes={disabledMinutes} | 115 | disabledMinutes={disabledMinutes} |
124 | disabledSeconds={disabledSeconds} | 116 | disabledSeconds={disabledSeconds} |
125 | onChange={this.onChange} | 117 | onChange={this.onChange} |
126 | onClear={this.onClear} | 118 | onClear={onClear} |
127 | allowEmpty={allowEmpty} | 119 | allowEmpty={allowEmpty} |
128 | /> | 120 | /> |
129 | <Combobox | 121 | <Combobox |
@@ -147,7 +139,7 @@ const Panel = React.createClass({ | |||
147 | {addon(this)} | 139 | {addon(this)} |
148 | </div> | 140 | </div> |
149 | ); | 141 | ); |
150 | }, | 142 | } |
151 | }); | 143 | } |
152 | 144 | ||
153 | export default Panel; | 145 | export default Panel; |