UNPKG

@sanity/form-builder

Version:
28 lines (26 loc) 881 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useOnClickOutside = useOnClickOutside; var _react = require("react"); // Modified version of https://usehooks.com/useOnClickOutside that can take multiple refs function useOnClickOutside(refs, handler) { (0, _react.useEffect)(() => { var listener = event => { if (refs.some(ref => { var _ref$current; return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.contains(event.target); })) { return; } handler(event); }; document.addEventListener('mousedown', listener); document.addEventListener('touchstart', listener); return () => { document.removeEventListener('mousedown', listener); document.removeEventListener('touchstart', listener); }; }, [refs, handler]); }