UNPKG

@mantine/hooks

Version:

A collection of 50+ hooks for state and UI management

34 lines (31 loc) 795 B
'use client'; import { useRef, useCallback, useEffect } from 'react'; function useTimeout(callback, delay, options = { autoInvoke: false }) { const timeoutRef = useRef(null); const start = useCallback( (...args) => { if (!timeoutRef.current) { timeoutRef.current = window.setTimeout(() => { callback(args); timeoutRef.current = null; }, delay); } }, [delay] ); const clear = useCallback(() => { if (timeoutRef.current) { window.clearTimeout(timeoutRef.current); timeoutRef.current = null; } }, []); useEffect(() => { if (options.autoInvoke) { start(); } return clear; }, [clear, start]); return { start, clear }; } export { useTimeout }; //# sourceMappingURL=use-timeout.mjs.map