react-bootstrap-time-picker
Version:
Bootstrap Time Picker React Component
95 lines (67 loc) • 3.52 kB
Markdown
# react-bootstrap-time-picker
Time Picker with bootstrap flavor
[](https://github.com/yury-dymov/react-bootstrap-time-picker)
[](https://www.npmjs.com/package/react-bootstrap-time-picker)
[](https://npmjs.org/package/react-bootstrap-time-picker)
[](https://travis-ci.org/yury-dymov/react-bootstrap-time-picker)
[](https://coveralls.io/github/yury-dymov/react-bootstrap-time-picker?branch=master)
# Versions
* v2 supports React Bootstrap v1.0.0+
* v1 supports React Bootstrap v0.x.x
# Demo
Demo and playground are available [here](https://yury-dymov.github.io/react-bootstrap-time-picker/)
# Install
```bash
npm i react-bootstrap-time-picker --save
```
# Usage Example
```
import TimePicker from 'react-bootstrap-time-picker';
<TimePicker start="10:00" end="21:00" step={30} />
```
# Configurable Props
*Note*: All props are optional.
## end: string, default "23:59"
Time Picker renders options with range between `start` and `end` time values with `step` (inclusive).
Should be provided in the following format: "HH?(:mm?(:ss?))".
#### Valid examples
"4", "04", "4:0", "04:00", "4:0:0", "04:00:00". All these are equal to "4 hours".
#### Invalid example
"11:00 PM". Should be provided in 24-hour format only
## format: number, default "23:59"
Time Format of rendered options. Supported values: `12` or `24`.
## initialValue: any, default: "00:00"
Initial selected option. Used if `value` prop is either `undefined` or `null`. Can be provided either in "HH?(:mm?(:ss?))" format or as int `(hours * 3600 + minutes * 60 + seconds)`. If `initialValue` is less than `start` property value, then `start` value is used instead.
#### Valid examples
"1:00", "01:00", "3600", 3600
#### Invalid examples
"11:00 PM"
## onChange: func, default: () => {}
Function, which is triggered after one of options is selected. Return selected time in int format: `(hours * 3600 + minutes * 60 + seconds)`.
#### Example
```
class Parent extends React.Component {
constructor() {
super();
this.handleTimeChange = this.handleTimeChange.bind(this);
this.state = { time: 0 };
}
handleTimeChange(time) {
console.log(time); // <- prints "3600" if "01:00" is picked
this.setState({ time });
}
render() {
return <TimePicker onChange={this.handleTimeChange} value={this.state.time} />;
}
}
```
## start: string, default: "00:00"
See `end` property description.
## step: number, default: 30
Step between time options in minutes. See `end` property description.
## value
Current value. See `initialValue` description.
# Validations
Library doesn't validate provided props much. If you are doing something strange like setting `start="10:00", end="05:00"`, then behavior is undefined, which means that it might render component differently in the future versions. Also underlying library [time-number](https://github.com/yury-dymov/time-number) throws exceptions if provided time is not in a proper format, i.e. `adl` is considered invalid.
# License
MIT (c) Yury Dymov