export const _debounce = (func, waitFor) => {
  let timeout = null

  const debounceFunction = (...args) => {
    if (timeout) {
      clearTimeout(timeout)
      timeout = null
    }
    timeout = setTimeout(() => {
      return func(...args)
    }, waitFor)
  }

  return debounceFunction
}

export const debounce = _debounce((func, args) => func(args), 400)