@taro-hooks/use-request
Version:
useRequest hook for Taro
38 lines (37 loc) • 902 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var core_1 = require("@taro-hooks/core");
var useLoadingDelayPlugin = function useLoadingDelayPlugin(fetchInstance, _ref) {
var loadingDelay = _ref.loadingDelay;
var timerRef = (0, core_1.useRef)();
if (!loadingDelay) {
return {};
}
var cancelTimeout = function cancelTimeout() {
if (timerRef.current) {
clearTimeout(timerRef.current);
}
};
return {
onBefore: function onBefore() {
cancelTimeout();
timerRef.current = setTimeout(function () {
fetchInstance.setState({
loading: true
});
}, loadingDelay);
return {
loading: false
};
},
onFinally: function onFinally() {
cancelTimeout();
},
onCancel: function onCancel() {
cancelTimeout();
}
};
};
exports["default"] = useLoadingDelayPlugin;