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