Im using React Native Web. I need to detect when a user clicks outside of a component. This is only loaded on web so it doesn't have to work on native.
Ive been trying to use a version of this hook: https://usehooks.com/useOnClickOutside/
In my component:
useOnClickOutside(ref, () => setIsOpen(false));
In the hook:
function useOnClickOutside(ref, handler) {
React.useEffect(
() => {
const listener = event => {
// Do nothing if clicking ref's element or descendent elements
if (!ref.current || ref.current.contains(event.target)) {
return;
}
handler(event);
};
document.addEventListener("mousedown", listener);
document.addEventListener("touchstart", listener);
return () => {
document.removeEventListener("mousedown", listener);
document.removeEventListener("touchstart", listener);
};
},
[ref, handler],
);
}
Which gives me an error:
TypeError: ref.current.contains is not a function
If I log ref.current I can see that there is no contains method. Does this exist for React Native Web?
