monday-ui-react-core
Version:
Official monday.com UI resources for application development in React.js
34 lines (27 loc) • 718 B
JavaScript
import { useCallback, useRef } from "react";
import useEventListener from "./useEventListener";
export default function useOnClickOutside({ ref, callback }) {
const refElement = ref && ref.current;
const onClickOutsideListener = useCallback(
event => {
if (!refElement || refElement.contains(event.target)) {
return;
}
callback(event);
},
[ ]
);
const documentRef = useRef(document);
useEventListener({
eventName: "click",
ref: documentRef,
callback: onClickOutsideListener,
capture: true
});
useEventListener({
eventName: "touchend",
ref: documentRef,
callback: onClickOutsideListener,
capture: true
});
}