1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
6 |
|
7 | var React = require('react');
|
8 | var React__default = _interopDefault(React);
|
9 |
|
10 |
|
11 |
|
12 | function useClickOutside(cb) {
|
13 | var ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : React.useRef();
|
14 |
|
15 |
|
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 |
|
32 | exports.useClickOutside = useClickOutside;
|
33 |
|