All files / app/components/Pill Pill.tsx

75% Statements 6/8
75% Branches 6/8
66.66% Functions 2/3
71.42% Lines 5/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 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 5612x 12x             116x                                 116x               116x                                            
import { styled, SxProps, Typography } from "@mui/material";
import { theme } from "theme";
 
interface PillStylesProps {
  backgroundColor?: string;
  color?: string;
}
 
const StyledPill = styled(Typography)<PillStylesProps>(({ theme }) => ({
  padding: theme.spacing(0.6, 1),
  textAlign: "center",
  fontWeight: "bold",
  margin: theme.spacing(0.5),
  fontSize: ".8rem",
}));
 
export interface PillProps {
  children: React.ReactNode;
  backgroundColor?: string;
  color?: string;
  onClick?: () => void;
  variant?: "rounded";
  sx?: SxProps;
}
 
export default function Pill({
  children,
  backgroundColor = theme.palette.grey[200],
  color = theme.palette.text.primary,
  onClick,
  variant = "rounded",
  sx,
}: PillProps) {
  const handleClick = () => {
    Iif (onClick) {
      onClick();
    }
  };
 
  return (
    <StyledPill
      sx={{
        backgroundColor,
        color,
        ...(variant === "rounded" && {
          borderRadius: theme.shape.borderRadius * 6,
        }),
        ...(sx || {}),
      }}
      onClick={handleClick}
    >
      {children}
    </StyledPill>
  );
}