import { useCallback, useEffect } from 'react'; export default function(callback: (e: any) => void, deps: any[]) { const clickOutside = useCallback(callback, deps); useEffect(() => { document.addEventListener('click', clickOutside, true); return () => { document.removeEventListener('click', clickOutside, true); }; }, [deps]); }