All files / src/shared/Switch GiveSwitch.tsx

100% Statements 5/5
100% Branches 4/4
100% Functions 1/1
100% Lines 5/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                          121x   3890x                   3890x 3553x     337x                              
import * as React from "react";
import {
  Switch as MuiSwitch,
  SwitchProps as MuiSwitchProps,
  Stack,
} from "@mui/material";
import GiveText from "@shared/Text/GiveText";
 
export type SwitchProps = MuiSwitchProps & {
  label?: React.ReactNode | string;
  inputRef?: React.Ref<HTMLInputElement>;
};
 
const GiveSwitch = ({ label, inputRef, ...props }: SwitchProps) => {
  const switchEl = (
    <MuiSwitch
      inputRef={inputRef}
      disableRipple
      disableTouchRipple
      disableFocusRipple
      version="two"
      {...props}
    />
  );
 
  if (!label) {
    return switchEl;
  }
 
  return (
    <Stack direction="row" spacing="12px" alignItems="center">
      {switchEl}
      {typeof label === "string" ? (
        <GiveText color="primary" variant="bodyS">
          {label}
        </GiveText>
      ) : (
        label
      )}
    </Stack>
  );
};
 
export default GiveSwitch;