]> git.immae.eu Git - github/fretlink/time-picker.git/commitdiff
Add showMinute
authorafc163 <afc163@gmail.com>
Fri, 11 Nov 2016 05:55:55 +0000 (13:55 +0800)
committerafc163 <afc163@gmail.com>
Fri, 11 Nov 2016 05:55:55 +0000 (13:55 +0800)
README.md
examples/format.html [new file with mode: 0644]
examples/format.js [new file with mode: 0644]
src/Combobox.jsx
src/Panel.jsx
src/TimePicker.jsx

index 5ec960c16f8ebcbe87fa08f7ad14d5ac8d6fb3f8..05182c210e75811550d9de4c29a6daa4728e2c9c 100644 (file)
--- a/README.md
+++ b/README.md
@@ -60,6 +60,7 @@ API
 | value                   | moment                            | null                                          | current value                                                                              |
 | placeholder             | String                            | ''                                            | time input's placeholder                                                                   |
 | showHour                | Boolean                           | whether show hour                             |                                                                                            |
+| showMinute                | Boolean                         | whether show minute                             |                                                                                            |
 | showSecond              | Boolean                           | whether show second                           |                                                                                            |
 | format                  | String                            |                                               |                                                                                            |
 | disabledHours           | Function                          | disabled hour options                         |                                                                                            |
diff --git a/examples/format.html b/examples/format.html
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/examples/format.js b/examples/format.js
new file mode 100644 (file)
index 0000000..c9a9539
--- /dev/null
@@ -0,0 +1,26 @@
+import 'rc-time-picker/assets/index.less';
+import React from 'react';
+import ReactDom from 'react-dom';
+import moment from 'moment';
+import TimePicker from 'rc-time-picker';
+
+const App = React.createClass({
+  render() {
+    return (
+      <div>
+        <TimePicker defaultValue={moment()} showHour={false} />
+        <TimePicker defaultValue={moment()} showMinute={false} />
+        <TimePicker defaultValue={moment()} showSecond={false} />
+
+        <TimePicker defaultValue={moment()} showMinute={false} showSecond={false} />
+        <TimePicker defaultValue={moment()} showHour={false} showSecond={false}/>
+        <TimePicker defaultValue={moment()} showHour={false} showMinute={false} />
+      </div>
+    );
+  },
+});
+
+ReactDom.render(
+  <App />,
+  document.getElementById('__react-content')
+);
index 9d9da16dea94e9667527af37aa2bf54fbdd1c2b6..013617cbe75af9fb3c12432030f5057f2f9bbd10 100644 (file)
@@ -26,6 +26,7 @@ const Combobox = React.createClass({
     value: PropTypes.object,
     onChange: PropTypes.func,
     showHour: PropTypes.bool,
+    showMinute: PropTypes.bool,
     showSecond: PropTypes.bool,
     hourOptions: PropTypes.array,
     minuteOptions: PropTypes.array,
@@ -73,7 +74,10 @@ const Combobox = React.createClass({
   },
 
   getMinuteSelect(minute) {
-    const { prefixCls, minuteOptions, disabledMinutes, defaultOpenValue } = this.props;
+    const { prefixCls, minuteOptions, disabledMinutes, defaultOpenValue, showMinute } = this.props;
+    if (!showMinute) {
+      return null;
+    }
     const value = this.props.value || defaultOpenValue;
     const disabledOptions = disabledMinutes(value.hour());
 
index 0ed60e9427a7dfa82f93a7f83869763f0c1e2a98..fddea1c09ddbc8fa591bd0847c7db1e7f23450a0 100644 (file)
@@ -34,6 +34,7 @@ const Panel = React.createClass({
     onEsc: PropTypes.func,
     allowEmpty: PropTypes.bool,
     showHour: PropTypes.bool,
+    showMinute: PropTypes.bool,
     showSecond: PropTypes.bool,
     onClear: PropTypes.func,
     addon: PropTypes.func,
@@ -88,7 +89,7 @@ const Panel = React.createClass({
   render() {
     const {
       prefixCls, className, placeholder, disabledHours, disabledMinutes,
-      disabledSeconds, hideDisabledOptions, allowEmpty, showHour, showSecond,
+      disabledSeconds, hideDisabledOptions, allowEmpty, showHour, showMinute, showSecond,
       format, defaultOpenValue, clearText, onEsc, addon,
     } = this.props;
     const {
@@ -130,6 +131,7 @@ const Panel = React.createClass({
           format={format}
           onChange={this.onChange}
           showHour={showHour}
+          showMinute={showMinute}
           showSecond={showSecond}
           hourOptions={hourOptions}
           minuteOptions={minuteOptions}
index 99d1008740b7e5ba895e1ee40ce1e871e199f30d..e9f18a911f57ca364461ec3f135942f87336bfd1 100644 (file)
@@ -29,6 +29,7 @@ const Picker = React.createClass({
     placeholder: PropTypes.string,
     format: PropTypes.string,
     showHour: PropTypes.bool,
+    showMinute: PropTypes.bool,
     showSecond: PropTypes.bool,
     style: PropTypes.object,
     className: PropTypes.string,
@@ -53,6 +54,7 @@ const Picker = React.createClass({
       defaultOpenValue: moment(),
       allowEmpty: true,
       showHour: true,
+      showMinute: true,
       showSecond: true,
       disabledHours: noop,
       disabledMinutes: noop,
@@ -121,24 +123,22 @@ const Picker = React.createClass({
   },
 
   getFormat() {
-    const format = this.props.format;
+    const { format, showHour, showMinute, showSecond } = this.props;
     if (format) {
       return format;
     }
-    if (!this.props.showSecond) {
-      return 'HH:mm';
-    }
-    if (!this.props.showHour) {
-      return 'mm:ss';
-    }
-    return 'HH:mm:ss';
+    return [
+      showHour ? 'HH' : '',
+      showMinute ? 'mm' : '',
+      showSecond ? 'ss' : '',
+    ].filter(item => !!item).join(':');
   },
 
   getPanelElement() {
     const {
       prefixCls, placeholder, disabledHours,
       disabledMinutes, disabledSeconds, hideDisabledOptions,
-      allowEmpty, showHour, showSecond, defaultOpenValue, clearText,
+      allowEmpty, showHour, showMinute, showSecond, defaultOpenValue, clearText,
       addon,
     } = this.props;
     return (
@@ -151,6 +151,7 @@ const Picker = React.createClass({
         onClear={this.onPanelClear}
         defaultOpenValue={defaultOpenValue}
         showHour={showHour}
+        showMinute={showMinute}
         showSecond={showSecond}
         onEsc={this.onEsc}
         allowEmpty={allowEmpty}