import React from 'react'; import { StyleSheet, View, ActivityIndicator, Text } from 'react-native'; import { COLORS, SPACING } from '@/constants/theme'; interface LoadingOverlayProps { visible: boolean; } export function LoadingOverlay({ visible }: LoadingOverlayProps) { if (!visible) return null; return ( ); } interface EmptyStateProps { title: string; message?: string; } export function EmptyState({ title, message }: EmptyStateProps) { return ( {title} {message && {message}} ); } const styles = StyleSheet.create({ overlay: { ...StyleSheet.absoluteFillObject, backgroundColor: 'rgba(0, 0, 0, 0.3)', justifyContent: 'center', alignItems: 'center', }, emptyContainer: { flex: 1, justifyContent: 'center', alignItems: 'center', padding: SPACING.xl, }, emptyContent: { alignItems: 'center', }, emptyIcon: { width: 48, height: 48, borderRadius: 24, backgroundColor: COLORS.card, marginBottom: SPACING.md, }, emptyText: { alignItems: 'center', }, emptyTitle: { color: COLORS.textSecondary, fontSize: 16, fontWeight: '600', }, emptyMessage: { color: COLORS.textMuted, fontSize: 14, }, });