Hook สำหรับ ดักจับ event click บริเวณด้านนอกของ view
import { useEffect, useRef } from "react";
const useOutsideClick = (callback) => {
const ref = useRef();
useEffect(() => {
const handleClick = (event) => {
if (ref.current && !ref.current.contains(event.target)) {
callback();
}
};
document.addEventListener("mousedown", handleClick);
return () => {
document.removeEventListener("mousedown", handleClick);
};
}, [ref]);
return ref;
};
export default useOutsideClick;
const outerRef = useOutsideClick(() => setIsFocus(false));