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