vue-hooks-plus
Version:
Vue hooks library
33 lines (32 loc) • 711 B
JavaScript
const vue = require("vue");
const useLoadingDelayPlugin = (inst, { loadingDelay }) => {
const delayRef = vue.ref();
const clear = () => {
if (delayRef.value) {
clearTimeout(vue.unref(delayRef.value));
delayRef.value = void 0;
}
};
return {
name: "loadingDelayPlugin",
onFinally: () => {
clear();
const delay = vue.unref(loadingDelay);
if (delay) {
inst.setState({
loading: true
});
delayRef.value = setTimeout(() => {
inst.setState({
loading: false
});
}, delay);
}
},
onError: () => {
clear();
}
};
};
module.exports = useLoadingDelayPlugin;
;