UNPKG

955 BJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
7var React = require('react');
8var React__default = _interopDefault(React);
9
10/* eslint-disable react-hooks/rules-of-hooks */
11
12function useClickOutside(cb) {
13 var ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : React.useRef();
14
15 /* eslint-enable react-hooks/rules-of-hooks */
16 var handleClick = React.useCallback(function (e) {
17 if (!ref.current.contains(e.target)) {
18 cb();
19 }
20 }, [cb, ref]);
21 React.useEffect(function () {
22 document.addEventListener('click', handleClick, true);
23 return function () {
24 document.removeEventListener('click', handleClick, true);
25 };
26 }, [handleClick]);
27 return {
28 ref: ref
29 };
30}
31
32exports.useClickOutside = useClickOutside;
33//# sourceMappingURL=useClickOutside.js.map