hasari-api / apps /mobile /components /LoadingSpinner.tsx
erdoganpeker's picture
v0.3.0 — multimodal vehicle damage MVP
e327f0d
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',
},
});