import React from "react"; /** * Hook to call a callback function when an element is clicked outside * @param callback The callback function to call when the element is clicked outside */ export const useClickOutsideElement = ( callback: () => void, ) => { const ref = React.useRef(null); React.useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (ref.current && !ref.current.contains(event.target as Node)) { callback(); } }; document.addEventListener("click", handleClickOutside); return () => document.removeEventListener("click", handleClickOutside); }, []); return ref; };