import React from 'react'; import {StyleProp, Text as RNText, TextStyle} from 'react-native'; import {Spacing, Theme} from './styleUtils'; import testIDProps from '../../shared/commonUtil'; export const Text: React.FC = (props: TextProps) => { const weight = props.weight || 'regular'; const textStyles: StyleProp = [ Theme.TextStyles.base, Theme.TextStyles[weight], props.color ? {color: props.color} : null, props.align ? {textAlign: props.align} : {textAlign: 'left'}, props.margin ? Theme.spacing('margin', props.margin) : null, props.size ? Theme.TextStyles[props.size] : null, props.style ? props.style : null, ]; return ( {props.children} ); }; interface TextProps { testID?: string; children: React.ReactNode; color?: string; weight?: 'regular' | 'semibold' | 'bold'; align?: TextStyle['textAlign']; margin?: Spacing; size?: | 'small' | 'extraSmall' | 'smaller' | 'regular' | 'large' | 'mediumSmall' | 'medium' | 'mediumExtraSmall'; lineHeight?: number; numLines?: number; ellipsizeMode?: 'head' | 'middle' | 'tail' | 'clip' | undefined; style?: StyleProp; accessible?: boolean | true; onPress?: () => void; onTextLayout?: (e: any) => void; }