Composable React Timer component that passes its status to its children.
npm install react-timer-wrapper!npm
!NPM
!npm
!Coveralls github
!CircleCI
!Snyk Vulnerabilities for GitHub Repo
Composable React Timer component that passes status props to children, in addition
to some basic callbacks. Can be used at a countdown timer ⏲ or as stopwatch ⏱ to track
time while active.
Via npm
``sh`
npm install --save react-timer-wrapper
Via Yarn
`sh`
yarn add react-timer-wrapper
The Timer can be used in a couple different ways. You could use it as a standaloneTimer
timer and setup callbacks to trigger things to happen in your project. Or, wrap
child components in component, where those children will receiveTimer
props passed in by the .
It can be used as a countdown timer, which will fire the onFinish event upon
completion. Or, you can use it to track the time that occurs while it’s active.
* active:Boolean - Start/stop the timer. (Default: false)component:String | Element
* - Element or React component used to render/wrap the children. (Default: div)duration:Number
* - Enables countdown mode and is the number of milliseconds to count before firing onFinish. (Default: 10000)loop:Boolean
* - Enable looping of the countdown timer. (Default: false)time:Number
* - Either used as a time offset for the duration when used as a countdown timer, or the initial time to start from when used for tracking time. (Default: 0)onFinish:Function
* - Callback fired when the timer has finished. (Fired in countdown mode only)onStart:Function
* - Callback fired when the timer is started.onStop:Function
* - Callback fired when the timer is stopped.onTimeUpdate:Function
* - Callback fired when time updates.
#### Standalone
`js
import Timer from 'react-timer-wrapper';
...
onTimerStart({duration, progress, time}) {
}
onTimerStop({duration, progress, time}) {
}
onTimerTimeUpdate({duration, progress, time}) {
}
onTimerFinish({duration, progress, time}) {
}
render() {
const {
timerActive,
} = this.state;
return (
onFinish={this.onTimerFinish}
onStart={this.onTimerStart}
onStop={this.onTimerStop}
onTimeUpdate={this.onTimerTimeUpdate}
/>
);
}
...
`
#### With children
`js
import Timer from 'react-timer-wrapper';
import CircleIndicator from 'react-indicators';
...
render() {
const {
timerShouldRun,
} = this.state;
return (
);
}
...
`
The Timer allows you to easily compose components that provide a visual
status of the timer. Each children receives the following props that you can use
to communicate the status of the timer.
* duration:Number - Duration of the countdown timer. _(Available for countdown timers only, null passed when used for time tracking)_progress:Number
* - Current percentage of timer complete. _(Available for countdown timers only, null passed when used for time tracking)_time:Number` - Current time on the timer in milliseconds.
*
* react-indicators
* react-timecode