{"ast":null,"code":"import { useCallback, useEffect, useRef } from 'react';\n\nconst useClickOutside = callback => {\n  const ref = useRef(null);\n  const escapeListener = useCallback(e => {\n    if (e.key === 'Escape') {\n      callback();\n    }\n  }, [callback]);\n  const clickListener = useCallback(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(() => {\n    if (false) {\n      document.addEventListener('mousedown', clickListener);\n      document.addEventListener('touchstart', clickListener);\n      document.addEventListener('keyup', escapeListener);\n      return () => {\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"}