@td-design/rn-hooks
Version:
从ahooks里面抽取的一些在rn项目里可以使用的hooks。提高开发效率
42 lines (38 loc) • 1.08 kB
JavaScript
;
var react = require('react');
var useLoadingDelayPlugin = function (fetchInstance, _a) {
var loadingDelay = _a.loadingDelay, ready = _a.ready;
var timerRef = react.useRef();
if (!loadingDelay)
return {};
var cancelTimeout = function () {
if (timerRef.current) {
clearTimeout(timerRef.current);
}
};
return {
onBefore: function () {
cancelTimeout();
// Two cases:
// 1. ready === undefined
// 2. ready === true
if (ready !== false) {
timerRef.current = setTimeout(function () {
fetchInstance.setState({
loading: true,
});
}, loadingDelay);
}
return {
loading: false,
};
},
onCancel: function () {
cancelTimeout();
},
onFinally: function () {
cancelTimeout();
},
};
};
exports.useLoadingDelayPlugin = useLoadingDelayPlugin;