]> git.immae.eu Git - github/fretlink/time-picker.git/blobdiff - src/module/Header.jsx
bump
[github/fretlink/time-picker.git] / src / module / Header.jsx
index 9a048dc07f3f97b68eb02328c4f46d5f2bb5b904..a926e9860edc256f7d15c2bc1dcd46a3de6ff645 100644 (file)
@@ -1,4 +1,4 @@
-import React, {PropTypes} from 'react';
+import React, { PropTypes } from 'react';
 import createSelection from '../util/selection';
 
 const Header = React.createClass({
@@ -57,7 +57,7 @@ const Header = React.createClass({
       str,
     });
     let value = null;
-    const {formatter, gregorianCalendarLocale, hourOptions, minuteOptions, secondOptions, disabledHours, disabledMinutes, disabledSeconds, onChange, allowEmpty} = this.props;
+    const { formatter, gregorianCalendarLocale, hourOptions, minuteOptions, secondOptions, disabledHours, disabledMinutes, disabledSeconds, onChange, allowEmpty } = this.props;
 
     if (str) {
       const originalValue = this.props.value;
@@ -107,7 +107,12 @@ const Header = React.createClass({
             originalValue.getMinutes() !== value.getMinutes() ||
             originalValue.getSeconds() !== value.getSeconds()
           ) {
-            onChange(value);
+            // keep other fields for rc-calendar
+            const changedValue = originalValue.clone();
+            changedValue.setHourOfDay(value.getHourOfDay());
+            changedValue.setMinutes(value.getMinutes());
+            changedValue.setSeconds(value.getSeconds());
+            onChange(changedValue);
           }
         } else if (originalValue !== value) {
           onChange(value);
@@ -139,7 +144,7 @@ const Header = React.createClass({
   },
 
   onClear() {
-    this.setState({str: ''});
+    this.setState({ str: '' });
     this.props.onClear();
   },
 
@@ -155,15 +160,17 @@ const Header = React.createClass({
     const { prefixCls, placeholder } = this.props;
     const { invalid, str } = this.state;
     const invalidClass = invalid ? `${prefixCls}-input-invalid` : '';
-    return (<input className={`${prefixCls}-input  ${invalidClass}`}
-                   ref="input"
-                   onKeyDown={this.onKeyDown}
-                   value={str}
-                   placeholder={placeholder} onChange={this.onInputChange}/>);
+    return (<input
+      className={`${prefixCls}-input  ${invalidClass}`}
+      ref="input"
+      onKeyDown={this.onKeyDown}
+      value={str}
+      placeholder={placeholder} onChange={this.onInputChange}
+    />);
   },
 
   selectRange() {
-    this.refs.input.focus();
+    this.refs.input.select();
     if (this.props.currentSelectPanel && this.refs.input.value) {
       let selectionRangeStart = 0;
       let selectionRangeEnd = 0;