1 import React, {PropTypes} from 'react';
2 import CommonMixin from '../mixin/CommonMixin';
3 import Header from './Header';
4 import Combobox from './Combobox';
9 function generateOptions(length) {
10 return Array.apply(null, {length: length}).map((item, index) => {
15 const Panel = React.createClass({
17 prefixCls: PropTypes.string,
18 value: PropTypes.object,
19 locale: PropTypes.object,
20 placeholder: PropTypes.string,
21 gregorianCalendarLocale: PropTypes.object,
22 formatter: PropTypes.object,
23 hourOptions: PropTypes.array,
24 minuteOptions: PropTypes.array,
25 secondOptions: PropTypes.array,
26 onChange: PropTypes.func,
27 onEsc: PropTypes.func,
28 allowEmpty: PropTypes.bool,
29 showHour: PropTypes.bool,
30 showSecond: PropTypes.bool,
31 onClear: PropTypes.func,
34 mixins: [CommonMixin],
38 hourOptions: generateOptions(24),
39 minuteOptions: generateOptions(60),
40 secondOptions: generateOptions(60),
48 value: this.props.value,
52 componentWillReceiveProps(nextProps) {
53 const value = nextProps.value;
62 this.setState({ value: newValue });
63 this.props.onChange(newValue);
71 const { locale, prefixCls, placeholder, hourOptions, minuteOptions, secondOptions, allowEmpty, showHour, showSecond, formatter, gregorianCalendarLocale } = this.props;
72 const value = this.state.value;
74 <div className={`${prefixCls}-inner`}>
77 gregorianCalendarLocale={gregorianCalendarLocale}
80 onEsc={this.props.onEsc}
82 placeholder={placeholder}
83 hourOptions={hourOptions}
84 minuteOptions={minuteOptions}
85 secondOptions={secondOptions}
86 onChange={this.onChange}
87 onClear={this.onClear}
88 allowEmpty={allowEmpty}
93 gregorianCalendarLocale={gregorianCalendarLocale}
95 onChange={this.onChange}
97 showSecond={showSecond}
98 hourOptions={hourOptions}
99 minuteOptions={minuteOptions}
100 secondOptions={secondOptions}
107 export default Panel;