Skip to content

Instantly share code, notes, and snippets.

@cigrainger
Created November 15, 2018 03:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cigrainger/5e5e19382ddbefc24d8fb69f0d155b64 to your computer and use it in GitHub Desktop.
Save cigrainger/5e5e19382ddbefc24d8fb69f0d155b64 to your computer and use it in GitHub Desktop.
import { useEffect } from "react";
const useOnClickOutside = (ref, handler) => {
useEffect(() => {
const listener = (event) => {
if (!ref.current || ref.current.contains(event.target)) {
return;
}
handler(event);
};
document.addEventListener("mousedown", listener);
return () => {
document.removeEventListener("mousedown", listener);
};
}, []);
};
export default useOnClickOutside;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment