import { Colors } from '@/constants/Colors'; import { FontColor, Fonts } from '@/constants/Fonts'; import { useThemeColor } from '@/hooks/useThemeColor'; import { View, type ViewProps } from 'react-native'; import { ColorValue, isFontColorKey, ThemeColor } from './ThemedText'; type ThemedViewProps = ViewProps & { className?: string; bgColor?: FontColor | ColorValue | string; }; export function ThemedView({ className, style, bgColor, ...props }: ThemedViewProps) { const themeColor = useThemeColor({ light: bgColor, dark: bgColor }, 'background'); const bgColorValue = (() => { if (!bgColor) return themeColor; // 检查是否是主题颜色 const themeColors = Object.keys(Colors.light) as ThemeColor[]; if (themeColors.includes(bgColor as ThemeColor)) { return useThemeColor({ light: bgColor, dark: bgColor }, bgColor as ThemeColor); } // 检查是否是 Fonts 中定义的颜色 if (isFontColorKey(bgColor)) { return Fonts[bgColor]; } // 返回自定义颜色值 return bgColor; })(); return ; }