acud
Version:
acg react 组件库
30 lines (28 loc) • 865 B
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = useRafDebounce;
var _react = _interopRequireDefault(require("react"));
var _raf = _interopRequireDefault(require("rc-util/lib/raf"));
var _rcUtil = require("rc-util");
/* eslint-disable no-undef */
/**
* Callback will only execute last one for each raf
*/
function useRafDebounce(callback) {
var executeRef = _react["default"].useRef(false);
var rafRef = _react["default"].useRef();
var wrapperCallback = (0, _rcUtil.useEvent)(callback);
return function () {
if (executeRef.current) {
return;
}
executeRef.current = true;
wrapperCallback();
rafRef.current = (0, _raf["default"])(function () {
executeRef.current = false;
});
};
}