{"ast":null,"code":"import { useCallback, useEffect, useRef } from 'react';\n\nvar useClickOutside = function useClickOutside(callback) {\n  var ref = useRef(null);\n  var escapeListener = useCallback(function (e) {\n    if (e.key === 'Escape') {\n      callback();\n    }\n  }, [callback]);\n  var clickListener = useCallback(function (e) {\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    if (ref.current && !ref.current.contains(e.target)) {\n      callback();\n    }\n  }, [callback]);\n  useEffect(function () {\n    if (true) {\n      document.addEventListener('mousedown', clickListener);\n      document.addEventListener('touchstart', clickListener);\n      document.addEventListener('keyup', escapeListener);\n      return function () {\n        document.removeEventListener('mousedown', clickListener);\n        document.removeEventListener('touchstart', clickListener);\n        document.removeEventListener('keyup', escapeListener);\n      };\n    }\n  }, [clickListener, escapeListener]);\n  return ref;\n};\n\nexport default useClickOutside;","map":null,"metadata":{},"sourceType":"module"}