import React from "react"; export const useClickOutside = (ref: React.RefObject, onClickOutside: () => void) => { React.useEffect(() => { const handleClickOutside = (event: MouseEvent | TouchEvent) => { if (ref.current && !ref.current.contains(event.target)) { onClickOutside(); } } document.addEventListener("mousedown", handleClickOutside); document.addEventListener("touchstart", handleClickOutside); return () => { document.removeEventListener("mousedown", handleClickOutside); document.removeEventListener("touchstart", handleClickOutside); } }, [ref, onClickOutside]); }