import React from 'react'; import { View, Text } from 'react-native'; import { Ionicons } from '@expo/vector-icons'; import { LoadingSpinner } from '../ui/LoadingSpinner'; interface AnalysisStatusIndicatorProps { status: 'pending' | 'completed' | 'failed' | 'manual'; mini?: boolean; } export const AnalysisStatusIndicator: React.FC = ({ status, mini = false, }) => { const getStatusConfig = () => { switch (status) { case 'pending': return { bgColor: 'bg-yellow-100', textColor: 'text-yellow-800', icon: null, text: 'Wird analysiert...', showSpinner: true, }; case 'completed': return { bgColor: 'bg-green-100', textColor: 'text-green-800', icon: 'checkmark-circle' as const, text: 'Analysiert', showSpinner: false, }; case 'failed': return { bgColor: 'bg-red-100', textColor: 'text-red-800', icon: 'alert-circle' as const, text: 'Analyse fehlgeschlagen', showSpinner: false, }; case 'manual': return { bgColor: 'bg-gray-100', textColor: 'text-gray-800', icon: 'create-outline' as const, text: 'Manuell', showSpinner: false, }; default: return { bgColor: 'bg-gray-100', textColor: 'text-gray-800', icon: 'help-circle-outline' as const, text: 'Unbekannt', showSpinner: false, }; } }; const config = getStatusConfig(); if (mini) { return ( {config.showSpinner ? ( ) : ( config.icon && )} {config.text} ); } return ( {config.showSpinner ? ( ) : ( config.icon && ( ) )} {config.text} ); };