diff --git a/src/composable/computedRefreshable.ts b/src/composable/computedRefreshable.ts index e89b79b3..89ab7348 100644 --- a/src/composable/computedRefreshable.ts +++ b/src/composable/computedRefreshable.ts @@ -1,15 +1,19 @@ -import { computedAsync } from '@vueuse/core'; +import { computedAsync, watchThrottled } from '@vueuse/core'; import { computed, ref, watch } from 'vue'; export { computedRefreshable, computedRefreshableAsync }; -function computedRefreshable(getter: () => T) { +function computedRefreshable(getter: () => T, { throttle }: { throttle?: number } = {}) { const dirty = ref(true); let value: T; const update = () => (dirty.value = true); - watch(getter, update); + if (throttle) { + watchThrottled(getter, update, { throttle }); + } else { + watch(getter, update); + } const computedValue = computed(() => { if (dirty.value) { diff --git a/src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue b/src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue index d7a35cc2..c435a335 100644 --- a/src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue +++ b/src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue @@ -65,11 +65,12 @@