Spaces:
Runtime error
Runtime error
import { useEffect } from 'react'; | |
export default function useOnClickOutside(ref, handler, excludeIds) { | |
useEffect(() => { | |
const handleClickOutside = (event) => { | |
if (excludeIds.includes(event.target.id)) { | |
return; | |
} | |
if (ref.current && !ref.current.contains(event.target)) { | |
handler(); | |
} | |
}; | |
document.addEventListener('mousedown', handleClickOutside); | |
return () => { | |
document.removeEventListener('mousedown', handleClickOutside); | |
}; | |
// eslint-disable-next-line react-hooks/exhaustive-deps | |
}, [ref, handler]); | |
} | |