portal-www
Version:
Nova Portal Website. Based on Next starter by Ueno
20 lines (15 loc) • 462 B
text/typescript
import { useEffect, RefObject } from 'react';
const useOutsideClick = (ref: RefObject<HTMLElement>, callback: () => void) => {
const handleClick = (e: Event) => {
if (ref.current && !ref.current.contains(e.target as Node)) {
callback();
}
};
useEffect(() => {
document.addEventListener('click', handleClick);
return () => {
document.removeEventListener('click', handleClick);
};
});
};
export default useOutsideClick;