import React from 'react' import { calculateTotal, getAchievement, getPatTypeColor } from '../utils/patCalculations' import { useTranslation } from '../i18n/LanguageContext' const formatDate = (value) => { if (!value) return '—' const parsed = new Date(value) if (Number.isNaN(parsed.getTime())) return value return new Intl.DateTimeFormat('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' }).format(parsed) } const formatValue = (value) => { if (value === '' || value === null || typeof value === 'undefined') return '—' return value } const ValueRow = ({ label, values = [] }) => (
{label} {values.map((value, index) => ( {formatValue(value)} ))}
) export default function SharedAssessmentView({ assessment }) { const t = useTranslation() if (!assessment) return null const totalPoints = calculateTotal(assessment.exercises || []) const achievement = getAchievement(assessment.patType, totalPoints) return (

{t('shared.title')}

{assessment.name || t('shared.default_name')}

{t('shared.hint')}

{assessment.patType}

{t('shared.date')}

{formatDate(assessment.datum)}

{t('shared.total_points')}

{totalPoints.toFixed(0)}

{t('shared.rating')}

{achievement.name}

{(assessment.exercises || []).map((exercise, index) => (

{exercise.name}

{t('shared.target_factor', { soll: exercise.soll, faktor: exercise.faktor })}

{t('shared.col_points')}

{(exercise.points || 0).toFixed(0)}

{exercise.subA && exercise.subB ? ( <> ) : ( )}

{t('shared.col_avg')}

{(exercise.durchschnitt || 0).toFixed(2)}

{t('shared.col_target')}

{exercise.soll}

{t('shared.col_factor')}

{exercise.faktor}

))}
{t('shared.col_result')} {totalPoints.toFixed(0)}

{achievement.name}

{achievement.subtitle &&

{achievement.subtitle}

}
) }