mirror of
https://github.com/zimplexing/OrionTV.git
synced 2026-05-13 11:07:29 +08:00
Update
This commit is contained in:
36
components/ThemedText.tsx
Normal file
36
components/ThemedText.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
import {Text, type TextProps} from 'react-native';
|
||||
|
||||
import {useThemeColor} from '@/hooks/useThemeColor';
|
||||
import {useTextStyles} from '@/hooks/useTextStyles';
|
||||
|
||||
export type ThemedTextProps = TextProps & {
|
||||
lightColor?: string;
|
||||
darkColor?: string;
|
||||
type?: 'default' | 'title' | 'defaultSemiBold' | 'subtitle' | 'link';
|
||||
};
|
||||
|
||||
export function ThemedText({
|
||||
style,
|
||||
lightColor,
|
||||
darkColor,
|
||||
type = 'default',
|
||||
...rest
|
||||
}: ThemedTextProps) {
|
||||
const color = useThemeColor({light: lightColor, dark: darkColor}, 'text');
|
||||
const styles = useTextStyles();
|
||||
|
||||
return (
|
||||
<Text
|
||||
style={[
|
||||
{color},
|
||||
type === 'default' ? styles.default : undefined,
|
||||
type === 'title' ? styles.title : undefined,
|
||||
type === 'defaultSemiBold' ? styles.defaultSemiBold : undefined,
|
||||
type === 'subtitle' ? styles.subtitle : undefined,
|
||||
type === 'link' ? styles.link : undefined,
|
||||
style,
|
||||
]}
|
||||
{...rest}
|
||||
/>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user