UNPKG

@cran/lib.vue.ref

Version:

Vue Reactivity Extensions

24 lines (19 loc) 512 B
import { type Ref, watch } from "vue"; /** * Always return value to a fallback after the * given delay (or on next stack) * @since 0.2.0 * @category Controller */ export function useAutoReset<T> ( ref: Ref<T>, delay?: number, fallback: T = ref.value ) { let timer: unknown | null = null; return watch(ref, function onNext ( ) { if (timer) { clearTimeout(timer as number); } timer = setTimeout(function onTimeout ( ) { timer = null; ref.value = fallback; }, delay); }); }