В общем, есть обычный handleClick на показ и скрытие меню, если клик не попадает на это меню. Не могу описать тип для event , который включает в себя path, MouseEvent не проходит .... 
const [isVisiblePopup, setIsVisiblePopup] = useState(false);
  const mobileButtonsRef = useRef(null);
  const isTrainer = userRole === 'trainer'
  const handleOutsideClick = (event: MouseEvent) => {
    const path = event.path || (event.composedPath && event.composedPath());
    if (path && !path.includes(mobileButtonsRef.current)) {
         setIsVisiblePopup(false);
    }
  };
  useEffect(() => {
    document.body.addEventListener('click', handleOutsideClick);
    return () => {
        document.body.removeEventListener('click', handleOutsideClick);
    };
  }, []);
Property 'path' does not exist on type 'MouseEvent'