UNPKG

@grafana/ui

Version:
35 lines (28 loc) 1.04 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefaultCompat(React); "use strict"; function useCustomClickAway(onClickAway) { const ref = React__default.default.useRef(null); const refCb = React__default.default.useRef(onClickAway); React__default.default.useLayoutEffect(() => { refCb.current = onClickAway; }); React__default.default.useEffect(() => { const handler = (e) => { const element = ref.current; if (element && e.target instanceof Node && !element.contains(e.target)) { refCb.current(e); } }; document.addEventListener("pointerdown", handler); return () => { document.removeEventListener("pointerdown", handler); }; }, []); return ref; } exports.useCustomClickAway = useCustomClickAway; //# sourceMappingURL=useSidebarClickAway.cjs.map