import { debounce } from "lodash";
import type { DependencyList } from "react";
import { useEffect, useMemo } from "react";
export default function useDebounceEffect<T extends DependencyList>(
{
func,
wait,
options,
}: { func: (T) => void | (() => void); wait: number; options? },
deps: T
) {
const f = useMemo(() => debounce(func, wait, options), []);
useEffect(() => f(deps), deps);
}