UNPKG

@rc-component/trigger

Version:

base abstract trigger component for react

28 lines (27 loc) 592 B
import * as React from 'react'; export default function useDelay() { const delayRef = React.useRef(null); const clearDelay = () => { if (delayRef.current) { clearTimeout(delayRef.current); delayRef.current = null; } }; const delayInvoke = (callback, delay) => { clearDelay(); if (delay === 0) { callback(); } else { delayRef.current = setTimeout(() => { callback(); }, delay * 1000); } }; // Clean up on unmount React.useEffect(() => { return () => { clearDelay(); }; }, []); return delayInvoke; }