All files / components/Spinner Spinner.tsx

100% Statements 40/40
100% Branches 6/6
100% Functions 1/1
100% Lines 40/40

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 411x 1x 1x 1x 1x 1x 1x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 1x 1x  
import { c } from '../../helpers';
import { SpinnerType } from './SpinnerConstants';
import { type SpinnerProps } from './SpinnerProps';
 
import styles from './Spinner.module.css';
 
const Spinner = ({
  cover,
  inverted,
  label,
  type = SpinnerType.PRIMARY,
  className,
}: SpinnerProps): JSX.Element => {
  return (
    <div
      className={c(
        styles.spinner_container,
        cover ? styles.cover : '',
        inverted ? styles.inverted : '',
        styles[type],
        className
      )}
    >
      <svg className={c(styles.spinner)} viewBox="0 0 50 50">
        <circle
          className={c(styles.spinner_path)}
          cx="25"
          cy="25"
          r="20"
          fill="none"
          strokeWidth="5"
          stroke="currentColor"
        ></circle>
      </svg>
      {label && <h5>{label}</h5>}
    </div>
  );
};
 
export default Spinner;