UNPKG

@blockstack/ui

Version:

Blockstack UI components built using React and styled-components with styled-system.

39 lines (33 loc) 943 B
import { useState, useRef, useCallback, useEffect } from 'react'; var useTimeout = function useTimeout(_ref) { var onTimeout = _ref.onTimeout, duration = _ref.duration; var _useState = useState(true), activated = _useState[0], setActivated = _useState[1]; var timeoutRef = useRef(); var stopTimeout = useCallback(function () { window.clearTimeout(timeoutRef.current); setActivated(false); }, []); useEffect(function () { if (activated) { timeoutRef.current = window.setTimeout(function () { onTimeout(); }, duration); return function () { stopTimeout(); }; } return; }, [onTimeout, activated, duration, stopTimeout]); var startTimeout = useCallback(function () { setActivated(true); }, []); return { stopTimeout: stopTimeout, startTimeout: startTimeout }; }; export { useTimeout }; //# sourceMappingURL=use-timeout.esm.js.map