All files / app/components IconText.tsx

88.88% Statements 8/9
100% Branches 1/1
66.66% Functions 2/3
100% Lines 7/7

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 384x     4x 4x   26x             4x                 26x 26x                            
import { styled, Typography } from "@mui/material";
import { OverridableComponent } from "@mui/material/OverridableComponent";
import { SvgIconTypeMap } from "@mui/material/SvgIcon";
import React, { ReactNode } from "react";
import { theme } from "theme";
 
const StyledWrapper = styled("div")(({ theme }) => ({
  alignItems: "center",
  display: "flex",
  marginBottom: theme.spacing(1),
  marginTop: theme.spacing(1),
}));
 
const StyledLabel = styled("div")(({ theme }) => ({
  marginInlineStart: theme.spacing(1),
}));
 
interface IconTextProps {
  icon: OverridableComponent<SvgIconTypeMap<unknown, "svg">>;
  text: ReactNode;
}
 
export default function IconText({ icon, text }: IconTextProps) {
  const Icon = icon;
  return (
    <StyledWrapper>
      <Icon />
      {typeof text === "string" ? (
        <Typography sx={{ marginInlineStart: theme.spacing(1) }}>
          {text}
        </Typography>
      ) : (
        <StyledLabel>{text}</StyledLabel>
      )}
    </StyledWrapper>
  );
}