useTimer
A hook that provides countdown timer functionality with pause, play, and reset controls. Perfect for implementing countdowns, timeouts, and time-based features.
Parameters
startTime:string- Initial time in format “DD:HH:MM:SS”
Returns
current:string- Current time in “DD:HH:MM:SS” formatisPaused:boolean- Whether the timer is pausedisOver:boolean- Whether the timer has finishedcurrentDays:number- Current days remainingcurrentHours:number- Current hours remainingcurrentMinutes:number- Current minutes remainingcurrentSeconds:number- Current seconds remainingelapsedSeconds:number- Total seconds elapsedremainingSeconds:number- Total seconds remainingpause:() => void- Function to pause the timerplay:() => void- Function to start/resume the timerreset:() => void- Function to reset to initial timetogglePause:() => void- Function to toggle pause state
Usage
import { useTimer } from '@rhinolabs/react-hooks';
function Countdown() { const { current, isPaused, isOver, togglePause, reset } = useTimer('00:01:30:00'); // 1 hour 30 minutes
return ( <div> <h2>Time Remaining: {current}</h2>
<button onClick={togglePause}> {isPaused ? 'Resume' : 'Pause'} </button>
<button onClick={reset}> Reset Timer </button>
{isOver && ( <div>Time's up!</div> )} </div> );}Notes
- Accepts time in “DD:HH:MM:SS” format
- Updates every second
- Provides formatted and parsed time values
- Includes pause/play/reset controls
- Tracks elapsed and remaining time
- Handles timer completion
- Auto-cleanup on unmount