import { type ViewProps } from 'react-native'; import { Text, type TextProps, StyleSheet } from 'react-native'; import { useThemeColor } from '@/hooks/useThemeColor'; export type ThemedViewProps = ViewProps & { lightColor?: string; darkColor?: string; }; export type ThemedTextProps = TextProps & { fontSize?: number; fontWeight?: 'normal' | 'semibold' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'; lightColor?: string; darkColor?: string; type?: 'custom' | 'default' | 'title' | 'defaultSemiBold' | 'subtitle' | 'link'; }; const ThemedText = ({ fontSize = 16, fontWeight = 'normal', style, lightColor, darkColor, type='default', ...rest }: ThemedTextProps) => { const color = useThemeColor({ light: lightColor, dark: darkColor }, 'text'); if (fontWeight === 'semibold') fontWeight = '600'; return ( ); }; export default ThemedText; const styles = StyleSheet.create({ default: { fontSize: 16, lineHeight: 24, }, defaultSemiBold: { fontSize: 16, lineHeight: 24, fontWeight: '600', }, title: { fontSize: 32, fontWeight: 'bold', lineHeight: 32, }, subtitle: { fontSize: 20, fontWeight: 'bold', }, link: { lineHeight: 30, fontSize: 16, color: '#0a7ea4', }, });