mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-23 08:16:16 -04:00
22 lines
477 B
TypeScript
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;
|