mirror of
https://github.com/kennethnym/aris.git
synced 2026-03-20 09:01:19 +00:00
- Expo SDK 54 / React Native 0.81 with expo-router - Tailscale devcontainer feature for direct device connectivity - Dev proxy for React Native DevTools access over Tailscale - EAS build configuration for development/preview/production - Ona automation for Expo dev server Co-authored-by: Ona <no-reply@ona.com>
61 lines
1.2 KiB
TypeScript
61 lines
1.2 KiB
TypeScript
import { StyleSheet, Text, type TextProps } from "react-native"
|
|
|
|
import { useThemeColor } from "@/hooks/use-theme-color"
|
|
|
|
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")
|
|
|
|
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}
|
|
/>
|
|
)
|
|
}
|
|
|
|
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",
|
|
},
|
|
})
|