@grafana/ui
Version:
Grafana Components Library
27 lines (24 loc) • 737 B
JavaScript
import React__default from 'react';
;
function useCustomClickAway(onClickAway) {
const ref = React__default.useRef(null);
const refCb = React__default.useRef(onClickAway);
React__default.useLayoutEffect(() => {
refCb.current = onClickAway;
});
React__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;
}
export { useCustomClickAway };
//# sourceMappingURL=useSidebarClickAway.mjs.map