-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Based on idea from this article:
export default function Img({ src }) {
const ref = useClickOutside(handleClickOutside);
function handleClickOutside() {
console.log("clicked outside");
}
return (
<img
ref={ref}
src={src}
alt="comment"
/>
);
}
function useClickOutside(fn) {
const ref = useRef(null);
useEffect(() => {
document.addEventListener("click", handleClick);
return () => document.removeEventListener("click", handleClick);
});
function handleClick(e) {
if (ref.current.contains(e.target)) {
return; // inside the element
}
fn();
};
return ref;
}It probably doesn't cover some edge cases like React.Protals though.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels