react-better-countdown-hook
Version:
A dead simple react countdown hook with typescript support
102 lines (82 loc) • 3.13 kB
Markdown
and lightweight countdown timer hook with most of the functionality you would need.
Built with typescript :)
The aim of the library is to remain as small as possible.
Using npm:
```bash
$ npm install --save react-better-countdown-hook
```
Using yarn:
```bash
$ yarn add react-better-countdown-hook
```
```js
import React, { useEffect, useState } from "react";
import ReactDOM from "react-dom";
import useCountDown from "react-better-countdown-hook";
const App: React.FunctionComponent = () => {
const [
{ milliseconds, seconds, minutes, hours, days },
{ start, reset, pause },
] = useCountDown({
// Start time in milliseconds
startTimeMilliseconds: 6000,
// Decrement to update the timer with
interval: 500,
// Callback triggered when the timer reaches 0
onCountDownEnd: () => {
console.log("ended");
},
});
return (
<>
<div>
<p>
Milliseconds: {milliseconds} Second: {seconds} Minute: {minutes}
Hours: {hours} Days: {days}
<button onClick={start}>start</button>
<button onClick={reset}>reset </button>
<button onClick={pause}>pause</button>
</p>
</div>
</>
);
};
const MOUNT_NODE = document.getElementById("react-root");
ReactDOM.render(<App />, MOUNT_NODE);
```
```js
const [
/** Time in milliseconds, seconds, minutes, hours, days */
{ milliseconds, seconds, minutes, hours, days },
{ start, reset, pause },
] = useCountDown({
// Start time in milliseconds
startTimeMilliseconds: 6000,
// Decrement to update the timer with
interval: 500,
// Callback triggered when the timer reaches 0
onCountDownEnd: () => {
console.log("ended");
},
});
```
| Property | Type | Is Optional | Description |
| --------------------- | -------- | ----------- | -------------------------------------------- |
| milliseconds | number | true | Current timer value in milliseconds |
| seconds | number | true | Current timer value in seconds |
| minutes | number | true | Current timer value in minutes |
| hours | number | true | Current timer value in hours |
| days | number | true | Current timer value in days |
| start | function | true | Function to start the timer |
| pause | function | true | Function to pause/stop the timer |
| reset | function | true | Function to pause and then reset the timer |
| startTimeMilliseconds | number | false | Start time of the timer in milliseconds |
| interval | number | false | Value to decrement |
| onCountDownEnd | function | true | Callback to trigger when the timer reaches 0 |
MIT
Super simple