'use client' import { ServiceModule, RiskAssessment, SERVICE_TYPE_CONFIG, CRITICALITY_CONFIG, RELEVANCE_CONFIG, } from './types' interface ModuleDetailPanelProps { module: ServiceModule; loadingDetail: boolean; loadingRisk: boolean; showRiskPanel: boolean; riskAssessment: RiskAssessment | null; onClose: () => void; onAssessRisk: (moduleId: string) => void; onCloseRisk: () => void; } export default function ModuleDetailPanel({ module, loadingDetail, loadingRisk, showRiskPanel, riskAssessment, onClose, onAssessRisk, onCloseRisk, }: ModuleDetailPanelProps) { return (
{SERVICE_TYPE_CONFIG[module.service_type]?.icon || '📁'}

{module.display_name}

{module.name}
{loadingDetail ? (
Lade Details...
) : (
{module.description && (
Beschreibung
{module.description}
)}
{module.port && (
Port:{module.port}
)}
Criticality:{module.criticality}
Tech Stack
{module.technology_stack.map((tech, i) => ({tech}))}
{module.data_categories.length > 0 && (
Daten-Kategorien
{module.data_categories.map((cat, i) => ({cat}))}
)}
{module.processes_pii && (Verarbeitet PII)} {module.ai_components && (AI-Komponenten)} {module.processes_health_data && (Gesundheitsdaten)}
{module.regulations && module.regulations.length > 0 && (
Applicable Regulations ({module.regulations.length})
{module.regulations.map((reg, i) => (
{reg.code}{reg.relevance_level}
{reg.name}
{reg.notes && (
{reg.notes}
)}
))}
)} {module.owner_team && (
Owner
{module.owner_team}
)} {module.repository_path && (
Repository
{module.repository_path}
)}
{showRiskPanel && (

🤖 AI Risikobewertung

{loadingRisk ? (
Analysiere Compliance-Risiken...
) : riskAssessment ? (
Gesamtrisiko:{riskAssessment.overall_risk.toUpperCase()}({Math.round(riskAssessment.confidence_score * 100)}% Konfidenz)
{riskAssessment.risk_factors.length > 0 && (
Risikofaktoren
{riskAssessment.risk_factors.map((factor, i) => (
{factor.factor}{factor.severity}
))}
)} {riskAssessment.compliance_gaps.length > 0 && (
Compliance-Luecken
    {riskAssessment.compliance_gaps.map((gap, i) => (
  • {gap}
  • ))}
)} {riskAssessment.recommendations.length > 0 && (
Empfehlungen
    {riskAssessment.recommendations.map((rec, i) => (
  • {rec}
  • ))}
)}
) : (
Klicken Sie auf "AI Risikobewertung" um eine Analyse zu starten.
)}
)}
)}
) }