diff --git a/web/src/compositions/useInterval.ts b/web/src/compositions/useInterval.ts new file mode 100644 index 000000000..1779f020d --- /dev/null +++ b/web/src/compositions/useInterval.ts @@ -0,0 +1,18 @@ +import { onBeforeUnmount, onMounted, ref } from 'vue'; + +export function useInterval(fn: () => void | Promise, ms: number): void { + const id = ref(); + + onMounted(async () => { + await fn(); // run once immediately + id.value = window.setInterval(() => { + void fn(); + }, ms); + }); + + onBeforeUnmount(() => { + if (id.value != null) { + window.clearInterval(id.value); + } + }); +} diff --git a/web/src/views/admin/AdminQueue.vue b/web/src/views/admin/AdminQueue.vue index b267d6f61..d8a8e181e 100644 --- a/web/src/views/admin/AdminQueue.vue +++ b/web/src/views/admin/AdminQueue.vue @@ -96,7 +96,7 @@