@blockstack/ui
Version:
Blockstack UI components built using React and styled-components with styled-system.
39 lines (33 loc) • 943 B
JavaScript
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