All files / src/shared/Text GiveTruncateText.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 39                    508x   68617x 15868x                                                  
import { styled } from "@theme/v2/Provider";
import GiveText from "./GiveText";
import { TextProps } from "./giveText.types";
 
export type TruncateTextProps = {
  lineClamp: number;
  link?: string;
  onHoverShowAll?: boolean;
} & TextProps;
 
const GiveTruncateText = styled(GiveText, {
  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 GiveTruncateText;