import { useEffect, DependencyList } from 'react'

export function useDebounceEffect(fn: () => void, waitTime: number, deps?: DependencyList) {
  useEffect(() => {
    const t = setTimeout(() => {
      fn.apply(undefined, [...(deps as [])])
    }, waitTime)

    return () => {
      clearTimeout(t)
    }
  }, deps)
}
