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