import { useState } from 'react'
import type { ValidationResult, LegalReference } from './types'
interface OutputAreaProps {
generatedMessage: string
setGeneratedMessage: (msg: string) => void
subject: string
validation: ValidationResult | null
legalRefs: LegalReference[]
loading: boolean
onImprove: () => void
onCopy: () => void
}
export function OutputArea({
generatedMessage,
setGeneratedMessage,
subject,
validation,
legalRefs,
loading,
onImprove,
onCopy,
}: OutputAreaProps) {
const [showLegalInfo, setShowLegalInfo] = useState(false)
return (
{/* Generated Message */}
Generierte Nachricht
{generatedMessage && (
)}
{subject && (
Betreff:
{subject}
)}
{generatedMessage ? (
{/* Validation */}
{validation && (
GFK-Analyse
{/* Score */}
GFK-Score
= 0.8 ? 'text-green-600' :
validation.gfk_score >= 0.6 ? 'text-yellow-600' : 'text-red-600'
}`}>
{Math.round(validation.gfk_score * 100)}%
= 0.8 ? 'bg-green-500' :
validation.gfk_score >= 0.6 ? 'bg-yellow-500' : 'bg-red-500'
}`}
style={{ width: `${validation.gfk_score * 100}%` }}
/>
{/* Issues */}
{validation.issues.length > 0 && (
Verbesserungsvorschlaege:
{validation.issues.map((issue, i) => (
-
!
{issue}
))}
)}
{/* Positive Elements */}
{validation.positive_elements.length > 0 && (
Positive Elemente:
{validation.positive_elements.map((elem, i) => (
-
+
{elem}
))}
)}
)}
{/* Legal References */}
{legalRefs.length > 0 && (
{showLegalInfo && (
{legalRefs.map((ref, i) => (
{ref.law} {ref.paragraph}
{ref.title}
{ref.summary}
Relevanz: {ref.relevance}
))}
)}
)}
)
}