All files / src/features/ChangeLog/filter-components FilterItem.tsx

60% Statements 3/5
100% Branches 4/4
50% Functions 1/2
60% Lines 3/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          117x                         66x   66x                                                                      
import { CaretDownIcon, XIcon } from "@phosphor-icons/react";
import GiveButton from "@shared/Button/GiveButton";
import GiveIconButton from "@shared/IconButton/GiveIconButton";
import { useAppTheme } from "@theme/v2/Provider";
 
const FilterItem = ({
  title,
  isSelected,
  onCancel,
  onClick,
  isOpen,
}: {
  title: string;
  isSelected: boolean;
  onCancel?: (event: React.MouseEvent<any>) => void;
  onClick: (event: React.MouseEvent<any>) => void;
  isOpen?: boolean;
}) => {
  const { palette } = useAppTheme();
 
  return (
    <GiveButton
      label={title}
      variant="ghost"
      onClick={onClick}
      endIcon={
        isSelected ? (
          <GiveIconButton
            Icon={XIcon}
            size="extraSmall"
            onClick={(e) => {
              e.stopPropagation();
              onCancel?.(e as React.MouseEvent);
            }}
          />
        ) : (
          <CaretDownIcon size={16} />
        )
      }
      sx={{
        borderRadius: "100px",
        textTransform: "none",
        whiteSpace: "nowrap",
        maxHeight: "32px",
        padding: "6px 12px",
        minWidth: "unset",
        ...(isOpen && {
          backgroundColor: palette.primitive?.transparent["darken-10"],
        }),
      }}
    />
  );
};
 
export default FilterItem;