images-viewer-vue3
Version:
A lightweight image viewer for Vue3
37 lines (36 loc) • 826 B
JavaScript
import { ref as o, nextTick as P } from "vue";
const i = 2e3;
function A(l, n, r, s = () => {
}, c) {
const e = o(null), u = o(!1), t = o(null), v = () => {
t.value && (u.value = !0, e.value = setInterval(() => {
y();
}, c || i));
}, y = () => {
P().then((T) => {
if (l.value === n.length - 1)
a();
else {
l.value++, t.value.scrollTo(l.value);
const f = n[l.value] || 0;
r.value && (r.value.src = f), s && s({ image: f, index: l.value });
}
});
};
function a() {
u.value = !1, e.value !== null && (clearInterval(e.value), e.value = null);
}
return {
timer: e,
scrollItemNavRef: t,
playState: u,
autoPlay: v,
stopPlay: a,
hotKeyAutoPlay: () => {
u.value ? a() : v();
}
};
}
export {
A as usePlayer
};