import React, { FC, useState } from 'react'; import { StyleSheet, Text as TextNative } from 'react-native'; import useTheme from '../../context/theme/useTheme'; import type { TextProps } from './types'; import createSxStyle from '../../lib/sx'; import { Box } from '../Box'; import { Ripple } from '../Ripple/Ripple'; export const Text: FC = ({ children, lines, fontWeight, lineHeight, fontSize, sx, transformText = 'none', size = 'base', color = 'text', readMore = false, textReadMore = 'Read more!', textReadLess = 'Read less!', align = 'left', bold = false, underline = false, italic = false, style = {}, readMoreButtonProps = {}, ...restSxProps }) => { const theme = useTheme(); const { fonts, fontSizes } = useTheme(); const [showMore, setShowMore] = useState(false); // console.log({ // color, // colorText: theme.colors.get(color) // }); const changeShowMore = () => { setShowMore((prev) => !prev); }; const font = bold ? 'bold' : 'regular'; return ( {children} {readMore && ( {showMore ? textReadLess : textReadMore} )} ); }; const _styles = StyleSheet.create({ container: { position: 'relative' }, italic: { fontStyle: 'italic' }, underline: { textDecorationStyle: 'solid', textDecorationLine: 'line-through' }, uppercase: { textTransform: 'uppercase' }, capitalize: { textTransform: 'capitalize' }, lowercase: { textTransform: 'lowercase' }, readMore: { marginRight: 0, marginLeft: 'auto' } });