it-tools/src/composable/debouncedref.ts
sharevb ab762c3e97 fix(Emoji picker): fix lags
Fix #1176 using debounced ref
2024-06-25 08:52:18 +02:00

22 lines
477 B
TypeScript

import _ from 'lodash';
function useDebouncedRef<T>(initialValue: T, delay: number, immediate: boolean = false) {
const state = ref(initialValue);
const debouncedRef = customRef((track, trigger) => ({
get() {
track();
return state.value;
},
set: _.debounce(
(value) => {
state.value = value;
trigger();
},
delay,
{ leading: immediate },
),
}));
return debouncedRef;
}
export default useDebouncedRef;