@scalar/api-client
Version:
the open source API testing client
26 lines (25 loc) • 669 B
JavaScript
import { ref as n } from "vue";
const l = 20, s = 100, v = 0, I = 15, r = 60, c = 400, A = c / l, g = () => {
const e = n(s), o = n(0), a = n(!1), t = n(), u = () => {
clearInterval(t.value), t.value = void 0, e.value = s, a.value = !1;
}, i = () => {
a.value ? e.value -= (e.value - I) / r : e.value -= o.value / A, e.value <= v && u();
};
return {
startLoading: () => {
if (t.value) {
a.value = !0;
return;
}
a.value = !0, t.value = setInterval(i, l);
},
stopLoading: () => {
o.value = e.value, a.value = !1;
},
percentage: e,
isLoading: a
};
};
export {
g as useLoadingAnimation
};