rrebase/knboard

View on GitHub
frontend/src/components/LabelChip.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import React from "react";
import { css } from "@emotion/core";
import { Chip, ChipProps } from "@material-ui/core";
import { getContrastColor, WHITE } from "utils/colors";
import { Label } from "types";

interface Props extends ChipProps {
  label: Label;
  onCard?: boolean;
}

const LabelChip = ({ label, onCard = false, ...rest }: Props) => {
  const contrastColor = getContrastColor(label.color);

  return (
    <Chip
      variant="outlined"
      data-testid={`label${label.id}`}
      label={label.name}
      css={css`
        overflow: auto;
        background-color: ${label.color};
        color: ${contrastColor};
        border: ${contrastColor === WHITE && "none"};
        border-radius: 4px;
        ${onCard &&
        `
          cursor: pointer;
          max-width: fit-content; 
          margin-bottom: 0.125rem; 
          margin-right: 0.125rem; 
          font-size: 10px; 
          height: unset;
        `}
        .MuiChip-label {
          ${onCard &&
          `
            font-weight: 500;
            padding: 1px 0.75em;
            line-height: 1.5;
            height: 18px;
            font-size: 10px;
          `}
        }
        .MuiChip-deleteIcon {
          color: ${contrastColor};
        }
      `}
      {...rest}
    />
  );
};

export default LabelChip;