1*19dc08ecS猫头猫import React from 'react'; 2*19dc08ecS猫头猫import {StyleSheet, Text, TextProps} from 'react-native'; 3*19dc08ecS猫头猫import rpx from '@/utils/rpx'; 4*19dc08ecS猫头猫import Color from 'color'; 5*19dc08ecS猫头猫import useTextColor from '@/hooks/useTextColor'; 6*19dc08ecS猫头猫import {useTheme} from 'react-native-paper'; 7*19dc08ecS猫头猫import {ColorKey, colorMap, fontSizeConst, fontWeightConst} from '@/constants/uiConst'; 8*19dc08ecS猫头猫 9*19dc08ecS猫头猫 10*19dc08ecS猫头猫 11*19dc08ecS猫头猫type IThemeTextProps = TextProps & { 12*19dc08ecS猫头猫 fontColor?: ColorKey; 13*19dc08ecS猫头猫 fontSize?: keyof typeof fontSizeConst; 14*19dc08ecS猫头猫 fontWeight?: keyof typeof fontWeightConst; 15*19dc08ecS猫头猫}; 16*19dc08ecS猫头猫 17*19dc08ecS猫头猫 18*19dc08ecS猫头猫export default function ThemeText(props: IThemeTextProps) { 19*19dc08ecS猫头猫 const theme = useTheme(); 20*19dc08ecS猫头猫 const {style, children, fontSize = 'content', fontColor = 'normal', fontWeight='regular'} = props; 21*19dc08ecS猫头猫 22*19dc08ecS猫头猫 const themeStyle = { 23*19dc08ecS猫头猫 color: theme.colors[colorMap[fontColor]], 24*19dc08ecS猫头猫 fontSize: fontSizeConst[fontSize], 25*19dc08ecS猫头猫 fontWeight: fontWeightConst[fontWeight], 26*19dc08ecS猫头猫 includeFontPadding: false, 27*19dc08ecS猫头猫 }; 28*19dc08ecS猫头猫 29*19dc08ecS猫头猫 const _style = Array.isArray(style) 30*19dc08ecS猫头猫 ? [themeStyle, ...style] 31*19dc08ecS猫头猫 : [themeStyle, style]; 32*19dc08ecS猫头猫 33*19dc08ecS猫头猫 return ( 34*19dc08ecS猫头猫 <Text {...props} style={_style}> 35*19dc08ecS猫头猫 {children} 36*19dc08ecS猫头猫 </Text> 37*19dc08ecS猫头猫 ); 38*19dc08ecS猫头猫} 39*19dc08ecS猫头猫 40*19dc08ecS猫头猫const style = StyleSheet.create({ 41*19dc08ecS猫头猫 wrapper: { 42*19dc08ecS猫头猫 width: rpx(750), 43*19dc08ecS猫头猫 }, 44*19dc08ecS猫头猫}); 45