All files / src/components/common/Text TruncateText.tsx

100% Statements 3/3
85.71% Branches 6/7
100% Functions 2/2
100% Lines 3/3

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                  548x   127259x 25665x                                                  
import { styled } from "@mui/material";
import { Text, ITextProps } from "./Text";
 
export type TruncateTextProps = {
  lineClamp: number;
  link?: string;
  onHoverShowAll?: boolean;
} & ITextProps;
 
const TruncateText = styled(Text, {
  shouldForwardProp: (prop) =>
    prop !== "lineClamp" && prop !== "link" && prop !== "onHoverShowAll",
})(({ lineClamp, link, onHoverShowAll }: TruncateTextProps) => ({
  display: "-webkit-box",
  lineClamp,
  WebkitLineClamp: lineClamp,
  WebkitBoxOrient: "vertical",
  overflowWrap: "break-word",
  textOverflow: "ellipsis",
  overflow: "hidden",
  wordBreak: "break-word",
  ...(link && {
    "&:hover": {
      textDecoration: "underline",
      cursor: "pointer",
    },
  }),
  ...(onHoverShowAll && {
    "&:hover": {
      display: "block",
      overflow: "visible",
      whiteSpace: "normal",
    },
  }),
}));
 
export default TruncateText;