All files / src/components/Analytics/SidePanels useSidePanel.ts

0% Statements 0/15
0% Branches 0/4
0% Functions 0/5
0% Lines 0/14

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 30 31 32 33 34 35 36 37 38 39 40                                                                               
import { checkPortals } from "@utils/routing";
import { useState } from "react";
import { useMediaQuery, useTheme } from "@mui/material";
import { CAMPAIGN_PANEL_WIDTH } from "@common/CampaignCard/CampaignDetailsModal/useCampaignModal";
import { useModal } from "@ebay/nice-modal-react";
 
const useSidePanel = () => {
  const [isExpanded, setIsExpanded] = useState<boolean>(false);
  const modal = useModal();
 
  const theme = useTheme();
  const hasResponsiveViewport = useMediaQuery(
    theme.breakpoints.up(CAMPAIGN_PANEL_WIDTH * 2),
  );
  const { isManageMoney } = checkPortals();
 
  const handleClose = () => {
    setIsExpanded((prev) => {
      if (!prev) {
        modal.remove();
      }
      return false;
    });
  };
 
  const handleExpandPanel = () => {
    setIsExpanded((prev) => !prev);
  };
 
  return {
    canBeExpanded: isManageMoney && hasResponsiveViewport,
    isExpanded,
    modal,
    handleClose,
    handleExpandPanel,
  };
};
 
export default useSidePanel;