/** * Loading 加载组件 * 支持不同尺寸、全屏模式 */ import React from 'react'; import { View, ActivityIndicator, StyleSheet, ViewStyle } from 'react-native'; import { colors } from '../../theme'; type LoadingSize = 'sm' | 'md' | 'lg'; interface LoadingProps { size?: LoadingSize; color?: string; fullScreen?: boolean; style?: ViewStyle; } const Loading: React.FC = ({ size = 'md', color = colors.primary.main, fullScreen = false, style, }) => { const getSize = (): 'small' | 'large' | undefined => { switch (size) { case 'sm': return 'small'; case 'lg': return 'large'; default: return undefined; } }; if (fullScreen) { return ( ); } return ( ); }; const styles = StyleSheet.create({ container: { padding: 20, alignItems: 'center', justifyContent: 'center', }, fullScreen: { flex: 1, alignItems: 'center', justifyContent: 'center', backgroundColor: colors.background.default, }, }); export default Loading;