All files / src/shared/GiveCheckbox GiveCheckbox.tsx

100% Statements 4/4
77.77% Branches 7/9
100% Functions 1/1
100% Lines 4/4

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            203x                       3387x   3387x                                             203x      
import { forwardRef } from "react";
import { Checkbox as MuiCheckbox } from "@mui/material";
import { CheckIcon, MinusIcon } from "@phosphor-icons/react";
import { CheckboxProps } from "./type";
import { useAppTheme } from "@theme/v2/Provider";
 
const GiveCheckbox = forwardRef<HTMLButtonElement, CheckboxProps>(
  (
    {
      error = false,
      size = "small",
      icon = null,
      checkedIcon = <CheckIcon fill="transparent" />,
      indeterminateIcon = <MinusIcon fill="transparent" />,
      ...rest
    },
    ref,
  ) => {
    const { palette } = useAppTheme();
 
    return (
      <MuiCheckbox
        disableRipple
        disableTouchRipple
        disableFocusRipple
        checkedIcon={checkedIcon}
        indeterminateIcon={indeterminateIcon}
        size={size}
        version="two"
        {...(icon && { icon })}
        ref={ref}
        {...rest}
        sx={{
          ...(error && {
            border: `1px solid ${palette.primitive?.error[50]} !important`,
          }),
          ...rest.sx,
        }}
      />
    );
  },
);
 
GiveCheckbox.displayName = "GiveCheckbox";
 
export default GiveCheckbox;