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]); };