UNPKG

@naarni/design-system

Version:

Naarni React Native Design System for EV Fleet Apps

22 lines (21 loc) 1.01 kB
import React, { memo } from 'react'; import { Text as RNText } from 'react-native'; import { textStyle, fontWeight } from '../../theme/typography'; import { useDeviceTheme } from '../../theme/deviceTheme'; const TextComponent = ({ variant = 'body1', color, align, weight, style, children, numberOfLines, ellipsizeMode, testID, }) => { const { colors } = useDeviceTheme(); const variantStyle = textStyle[variant]; const textStyleObj = { fontFamily: variantStyle.fontFamily, fontSize: variantStyle.fontSize, lineHeight: variantStyle.lineHeight * variantStyle.fontSize, letterSpacing: variantStyle.letterSpacing || 0, color: color || colors.text.primary, textAlign: align || 'left', fontWeight: weight ? fontWeight[weight] : '400', }; return (<RNText style={[textStyleObj, style]} numberOfLines={numberOfLines} ellipsizeMode={ellipsizeMode} testID={testID}> {children} </RNText>); }; export const Text = memo(TextComponent);