@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
29 lines (28 loc) • 1.07 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useDepsTimeout = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _react = require("react");
var _usePersistFn = require("../usePersistFn");
var useDepsTimeout = function useDepsTimeout(fn, deps, delay) {
var timerCallback = (0, _usePersistFn.usePersistFn)(fn);
var timerRef = (0, _react.useRef)(null);
var clear = (0, _usePersistFn.usePersistFn)(function () {
if (timerRef.current) {
clearTimeout(timerRef.current);
}
});
(0, _react.useEffect)(function () {
if (typeof delay !== 'number' || delay < 0) {
return;
}
timerRef.current = setTimeout(timerCallback, delay);
return clear;
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [delay, clear, timerCallback].concat((0, _toConsumableArray2.default)(deps)));
return clear;
};
exports.useDepsTimeout = useDepsTimeout;