@naarni/design-system
Version:
Naarni React Native Design System for EV Fleet Apps
22 lines (21 loc) • 1.01 kB
JavaScript
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);