Spaces:
Running
Running
| import React from 'react'; | |
| import { ActivityIndicator, StyleSheet, Text, View, ViewStyle } from 'react-native'; | |
| import { colors, spacing, typography } from '../theme'; | |
| interface Props { | |
| label?: string; | |
| fullscreen?: boolean; | |
| style?: ViewStyle; | |
| } | |
| export default function LoadingSpinner({ label, fullscreen, style }: Props) { | |
| return ( | |
| <View style={[styles.container, fullscreen && styles.fullscreen, style]}> | |
| <ActivityIndicator size="large" color={colors.primary} /> | |
| {label ? <Text style={styles.label}>{label}</Text> : null} | |
| </View> | |
| ); | |
| } | |
| const styles = StyleSheet.create({ | |
| container: { | |
| alignItems: 'center', | |
| justifyContent: 'center', | |
| padding: spacing.lg, | |
| }, | |
| fullscreen: { | |
| flex: 1, | |
| backgroundColor: colors.bg, | |
| }, | |
| label: { | |
| ...typography.caption, | |
| color: colors.textMuted, | |
| marginTop: spacing.md, | |
| textAlign: 'center', | |
| }, | |
| }); | |