reactuals
Version:
A useful package providing a collection of 50+ React hooks and utilities to simplify React development.
20 lines (19 loc) • 548 B
JavaScript
import { useEffect, useRef } from "react";
/**
* Runs a function after a delay.
* @param callback - Function to run
* @param delay - Delay in milliseconds
*
* Example:
* useTimeout(() => setMessage("Done!"), 2000);
*/
export function useTimeout(callback, delay) {
const savedCallback = useRef(callback);
useEffect(() => {
savedCallback.current = callback;
}, [callback]);
useEffect(() => {
const id = setTimeout(() => savedCallback.current(), delay);
return () => clearTimeout(id);
}, [delay]);
}