UNPKG

portalis-component

Version:

Component Library for Nuxt 3 using TailwindCSS

29 lines (28 loc) 741 B
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; }