Text.tsx 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import React, { useEffect, useState } from "react";
  2. import styled from "styled-components";
  3. type Props = {
  4. size?: number;
  5. color?: string;
  6. weight?: number;
  7. children: any;
  8. additionalStyles?: string;
  9. };
  10. const Text: React.FC<Props> = ({
  11. size,
  12. weight,
  13. color,
  14. children,
  15. additionalStyles
  16. }) => {
  17. const getColor = () => {
  18. switch (color) {
  19. case "helper":
  20. return "#aaaabb";
  21. default:
  22. return color;
  23. }
  24. };
  25. return (
  26. <StyledText
  27. size={size}
  28. color={getColor()}
  29. weight={weight}
  30. additionalStyles={additionalStyles}
  31. >
  32. {children}
  33. </StyledText>
  34. );
  35. };
  36. export default Text;
  37. const StyledText = styled.div<{
  38. size?: number;
  39. color?: string;
  40. weight?: number;
  41. additionalStyles?: string;
  42. }>`
  43. line-height: 1.5;
  44. font-weight: ${props => props.weight || 400};
  45. color: ${props => props.color || props.theme.text.primary};
  46. font-size: ${props => props.size || 13}px;
  47. display: inline;
  48. align-items: center;
  49. ${props => props.additionalStyles ? props.additionalStyles : ""}
  50. `;