# All files / Button index.tsx

100% Statements 5/5
100% Branches 4/4
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
    391x
    1x

    1x

    10x

     import { Button as MaterialButton } from "@mui/material";
    import { styleMode, styleModeDisabled } from "./types";
    import React from "react";

    interface Props {
      id?: string;
      label: string;
      onClick: () => void;
      mode?: "primary" | "secondary" | "tertiary" | "text";
      style?: React.CSSProperties;
      disabled?: boolean;
    }

    export const Button = ({
      id,
      label,
      onClick,
      mode = "primary",
      style = {},
      disabled,
    }: Props) => {
      return (
        <MaterialButton
          id={id}
          onClick={onClick}
          data-testid="custom-button"
          style={{
            ...(disabled ? styleModeDisabled[mode] : styleMode[mode]),
            borderRadius: "10px",
            textTransform: "none",
            ...style,
          }}
          disabled={disabled}
        >
          {label}
        </MaterialButton>
      );
    };