All files / src/components/CampaignReport ReportActionButtons.tsx

20% Statements 1/5
0% Branches 0/16
0% Functions 0/1
20% Lines 1/5

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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79                                      13x                                                                                                                      
import React from "react";
import { Stack } from "@mui/material";
import { Button } from "@common/Button";
import { NewPenIcon, NewEyeIcon, NewHorizentalMoreIcon } from "@assets/icons";
import { useTheme } from "@mui/material/styles";
import useMediaQuery from "@mui/material/useMediaQuery";
import { StyledIconButton } from "@common/IconButton";
 
type ReportActionProps = {
  onPrimaryClick?: (e?: any) => void;
  onSecondaryClick?: null | ((e?: any) => void);
  onMenuOpen?: (e?: any) => void;
  primaryLabel?: string;
  secondaryLabel?: string;
  secondaryButton?: React.ReactNode;
  isDisabledPrimaryClick?: boolean;
  isEditProductAllowed?: boolean;
};
 
const ReportActionButtons = ({
  onSecondaryClick,
  onPrimaryClick,
  onMenuOpen,
  primaryLabel,
  secondaryLabel,
  secondaryButton,
  isDisabledPrimaryClick = false,
  isEditProductAllowed = true,
}: ReportActionProps) => {
  const theme = useTheme();
  const isDesktop = useMediaQuery(theme.breakpoints.up("sm"));
  const isDisabled = isDisabledPrimaryClick || !isEditProductAllowed;
 
  return (
    <Stack
      direction={isDesktop ? "row" : "column"}
      alignItems="center"
      alignSelf="flex-start"
    >
      {onSecondaryClick && (
        <Button
          size={"medium"}
          endIcon={<NewEyeIcon />}
          background="tertiary"
          fullWidth={!isDesktop}
          onClick={onSecondaryClick}
        >
          {secondaryLabel || "Preview"}
        </Button>
      )}
      {onPrimaryClick && (
        <Button
          size={"medium"}
          endIcon={<NewPenIcon />}
          background="tertiary"
          fullWidth
          disabled={isDisabled}
          onClick={onPrimaryClick}
          sx={{
            padding: 0,
            minWidth: 0,
          }}
        >
          {primaryLabel || "Edit"}
        </Button>
      )}
 
      {secondaryButton}
      {onMenuOpen && (
        <StyledIconButton size="small" onClick={onMenuOpen}>
          <NewHorizentalMoreIcon />
        </StyledIconButton>
      )}
    </Stack>
  );
};
 
export default ReportActionButtons;