evcc-io/assets/js/utils/useDebouncedComputed.ts
Thomas Speer 5617c19bb9
UI: make loadpoints sortable and hideable (#23621)
Co-authored-by: Michael Geers <michael@geers.tv>
2025-09-29 13:05:29 +02:00

17 lines
405 B
TypeScript

import { ref, watch, type Ref } from "vue";
import { debounce } from "./debounce";
export function useDebouncedComputed<T>(
getter: () => T,
deps: () => any,
delay: number = 100
): Ref<T> {
const result = ref<T>();
const debouncedUpdate = debounce(() => {
result.value = getter();
}, delay);
watch(deps, debouncedUpdate, { immediate: true, deep: true });
return result as Ref<T>;
}