UNPKG

@stackoverfloweth/vue-compositions

Version:

A collection of reusable vue compositions.

21 lines 654 B
import debounce from 'lodash.debounce'; import { ref, watch, watchEffect, isReadonly } from 'vue'; export function useDebouncedRef(input, waitMs) { const waitRef = ref(waitMs); const copy = ref(input.value); const update = debounce((value) => { if (value !== copy.value) { copy.value = value; } }, waitRef.value); watchEffect(() => update(input.value)); if (!isReadonly(input)) { watch(copy, value => { if (value !== input.value) { input.value = value; } }, { flush: 'sync' }); } return copy; } //# sourceMappingURL=useDebouncedRef.js.map