      // Returns a function, that, as long as it continues to be invoked, will not
      // be triggered. The function will be called after it stops being called for
      // N milliseconds.
      function debounce(fn, wait) {
        let timeout

        return (...args) => {
          clearTimeout(timeout)
          timeout = setTimeout(() => fn(...args), wait)
        }
      }
export default debounce
