import { useEffect } from 'react'; export function useOnClickOutside( ref: React.RefObject, onClickOutside: () => void, ) { useEffect(() => { function handleClick(event: MouseEvent) { if (ref.current && !ref.current.contains(event.target as Node)) { onClickOutside(); } } document.addEventListener('mousedown', handleClick); return () => document.removeEventListener('mousedown', handleClick); }, [ref, onClickOutside]); }