frontend-challenges
frontend-challenges copied to clipboard
2 - useClickOutside
import { useEffect } from "react";
const useClickOutside = (ref, callback) => {
useEffect(() => {
const handleClickOutside = (event) => {
if (ref.current && !ref.current.contains(event.target)) {
callback();
}
};
document.addEventListener("click", handleClickOutside);
return () => {
document.removeEventListener("click", handleClickOutside);
};
}, [ref, callback]);
};
export default useClickOutside;