/** * Learn more about Light and Dark modes: * https://docs.expo.io/guides/color-schemes/ */ import * as React from "react"; import { Text as DefaultText, View as DefaultView } from "react-native"; import Colors from "../constants/Colors"; import useColorScheme from "../hooks/useColorScheme"; export function useThemeColor( props: { light?: string; dark?: string }, colorName: keyof typeof Colors.light & keyof typeof Colors.dark, ) { const theme = useColorScheme(); const colorFromProps = props[theme]; if (colorFromProps) { return colorFromProps; } else { return Colors[theme][colorName]; } } type ThemeProps = { lightColor?: string; darkColor?: string; }; export type TextProps = ThemeProps & DefaultText["props"]; export type ViewProps = ThemeProps & DefaultView["props"]; export function Text(props: TextProps) { const { style, lightColor, darkColor, ...otherProps } = props; const color = useThemeColor({ light: lightColor, dark: darkColor }, "text"); return ; } export function View(props: ViewProps) { const { style, lightColor, darkColor, ...otherProps } = props; const backgroundColor = useThemeColor({ light: lightColor, dark: darkColor }, "background"); return ; }