import { useEffect, type RefObject } from 'react'; export function useClickOutside(ref: RefObject, callback: () => void) { useEffect(() => { function handleClickOutside(e: MouseEvent) { if (ref.current && !ref.current.contains(e.target as Node)) { callback(); } } document.addEventListener('mousedown', handleClickOutside); return () => document.removeEventListener('mousedown', handleClickOutside); }, [ref, callback]); }