Skip to content

Repository files navigation

react-timer-hook

React timer hook is a custom react hook, built to handle timer, stopwatch, and time logic/state in your react component.

  1. useTimer: Timers (countdown timer)
  2. useStopwatch: Stopwatch (count up timer)
  3. useTime: Time (return current time)

Setup

yarn add react-timer-hook OR npm install --save react-timer-hook


useTimer - Demo

Example

importReactfrom'react';import{useTimer}from'react-timer-hook';functionMyTimer({ expiryTimestamp }){const{
seconds,
minutes,
hours,
days,
isRunning,
start,
pause,
resume,
restart,}=useTimer({ expiryTimestamp,onExpire: ()=>console.warn('onExpire called')});return(<divstyle={{textAlign: 'center'}}><h1>react-timer-hook </h1><p>Timer Demo</p><divstyle={{fontSize: '100px'}}><span>{days}</span>:<span>{hours}</span>:<span>{minutes}</span>:<span>{seconds}</span></div><p>{isRunning ? 'Running' : 'Not running'}</p><buttononClick={start}>Start</button><buttononClick={pause}>Pause</button><buttononClick={resume}>Resume</button><buttononClick={()=>{// Restarts to 5 minutes timerconsttime=newDate();time.setSeconds(time.getSeconds()+300);restart(time)}}>Restart</button></div>);}exportdefaultfunctionApp(){consttime=newDate();time.setSeconds(time.getSeconds()+600);// 10 minutes timerreturn(<div><MyTimerexpiryTimestamp={time}/></div>);}

Settings

keyTypeRequiredDescription
expiryTimestampDate objectYESthis will define for how long the timer will be running
autoStartbooleanNoflag to decide if timer should start automatically, by default it is set to true
onExpireFunctionNocallback function to be executed once countdown timer is expired

Values

keyTypeDescription
secondsnumberseconds value
minutesnumberminutes value
hoursnumberhours value
daysnumberdays value
isRunningbooleanflag to indicate if timer is running or not
pausefunctionfunction to be called to pause timer
startfunctionfunction if called after pause the timer will continue based on original expiryTimestamp
resumefunctionfunction if called after pause the timer will continue countdown from last paused state
restartfunctionfunction to restart timer with new expiryTimestamp, accept 2 arguments first is the new expiryTimestamp of type Date object and second is autoStart of type boolean to decide if it should automatically start after restart or not, default is true

useStopwatch - Demo

Example

importReactfrom'react';import{useStopwatch}from'react-timer-hook';functionMyStopwatch(){const{
seconds,
minutes,
hours,
days,
isRunning,
start,
pause,
reset,}=useStopwatch({autoStart: true});return(<divstyle={{textAlign: 'center'}}><h1>react-timer-hook</h1><p>Stopwatch Demo</p><divstyle={{fontSize: '100px'}}><span>{days}</span>:<span>{hours}</span>:<span>{minutes}</span>:<span>{seconds}</span></div><p>{isRunning ? 'Running' : 'Not running'}</p><buttononClick={start}>Start</button><buttononClick={pause}>Pause</button><buttononClick={reset}>Reset</button></div>);}exportdefaultfunctionApp(){return(<div><MyStopwatch/></div>);}

Settings

keyTypeRequiredDescription
autoStartbooleanNoif set to true stopwatch will auto start, by default it is set to false
offsetTimestampDate objectNothis will define the initial stopwatch offset example: const stopwatchOffset = new Date(); stopwatchOffset.setSeconds(stopwatchOffset.getSeconds() + 300); this will result in a 5 minutes offset and stopwatch will start from 0:0:5:0 instead of 0:0:0:0

Values

keyTypeDescription
secondsnumberseconds value
minutesnumberminutes value
hoursnumberhours value
daysnumberdays value
isRunningbooleanflag to indicate if stopwatch is running or not
startfunctionfunction to be called to start/resume stopwatch
pausefunctionfunction to be called to pause stopwatch
resetfunctionfunction to be called to reset stopwatch to 0:0:0:0, you can also pass offset parameter to this function to reset stopwatch with offset, similar to how offsetTimestamp will offset the initial stopwatch time, this function will accept also a second argument which will decide if stopwatch should automatically start after reset or not default is true

useTime - Demo

Example

importReactfrom'react';import{useTime}from'react-timer-hook';functionMyTime(){const{
seconds,
minutes,
hours,
ampm,}=useTime({format: '12-hour'});return(<divstyle={{textAlign: 'center'}}><h1>react-timer-hook </h1><p>Current Time Demo</p><divstyle={{fontSize: '100px'}}><span>{hours}</span>:<span>{minutes}</span>:<span>{seconds}</span><span>{ampm}</span></div></div>);}exportdefaultfunctionApp(){return(<div><MyTime/></div>);}

Settings

keyTypeRequiredDescription
formatstringNoif set to 12-hour time will be formatted with am/pm

Values

keyTypeDescription
secondsnumberseconds value
minutesnumberminutes value
hoursnumberhours value
ampmstringam/pm value if 12-hour format is used

Deprecation Warning:

Starting from v1.1.0 and above default export useTimer is deprecated, your old code will still work but it is better to start using named exports { useTimer, useStopwatch, useTime }

About

React timer hook

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages