portalis-component
Version:
Component Library for Nuxt 3 using TailwindCSS
29 lines (28 loc) • 741 B
JavaScript
import defu from "defu";
import { tryOnMounted } from "@vueuse/shared";
import { computed, ref } from "vue-demi";
export default function useLoading(options_) {
const options = defu(options_, { elapsed: true });
const counter = ref(0);
const elapsed = ref(options.elapsed !== false);
const loading = computed({
get() {
return counter.value > 0 || elapsed.value;
},
set(value) {
if (value)
counter.value++;
else
counter.value--;
}
});
tryOnMounted(() => {
if (options.elapsed !== false) {
const elapsedTime = options.elapsed === true ? 200 : options.elapsed;
setTimeout(() => {
elapsed.value = false;
}, elapsedTime);
}
});
return loading;
}