All files / src/components/Wrapper/InternetStatusWrapper index.tsx

77.77% Statements 7/9
50% Branches 6/12
100% Functions 2/2
85.71% Lines 6/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29                              6x   6x 1x 1x     6x   6x        
import useInternetStatus from "@hooks/common/useInternetStatus";
import { PropsWithChildren, useEffect } from "react";
import NiceModal from "@ebay/nice-modal-react";
import { CONNECTION_ERROR_MODAL } from "modals/modal_names";
 
interface InternetStatusWrapperProps extends PropsWithChildren {
  noInternetComponent?: JSX.Element;
  showModal?: boolean;
}
 
function InternetStatusWrapper({
  children,
  noInternetComponent,
  showModal = true,
}: InternetStatusWrapperProps) {
  const { isOnline } = useInternetStatus();
 
  useEffect(() => {
    Iif (!isOnline && showModal) NiceModal.show(CONNECTION_ERROR_MODAL);
    else Eif (isOnline) NiceModal.hide(CONNECTION_ERROR_MODAL);
  }, [isOnline]);
 
  Iif (!isOnline && noInternetComponent && !showModal)
    return noInternetComponent;
  else return <>{children}</>;
}
 
export default InternetStatusWrapper;