'use client'
import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader'
import { RiskMatrix } from './_components/RiskMatrix'
import { RiskForm } from './_components/RiskForm'
import { RiskCard } from './_components/RiskCard'
import { LoadingSkeleton } from './_components/LoadingSkeleton'
import { useRisks } from './_hooks/useRisks'
export default function RisksPage() {
const {
state,
showForm,
setShowForm,
editingRisk,
setEditingRisk,
loading,
error,
setError,
matrixFilter,
setMatrixFilter,
handleSubmit,
handleDelete,
handleStatusChange,
handleEdit,
handleMatrixCellClick,
stats,
filteredRisks,
} = useRisks()
const stepInfo = STEP_EXPLANATIONS['risks']
return (
{!showForm && (
)}
{error && (
{error}
)}
Gesamt
{stats.totalRisks}
Kritisch
{stats.criticalRisks}
Mit Mitigation
{stats.mitigatedRisks}
{showForm && (
{ setShowForm(false); setEditingRisk(null) }}
initialData={editingRisk || undefined}
/>
)}
{loading && }
{!loading && (
)}
{matrixFilter && (
Gefiltert: L={matrixFilter.likelihood} I={matrixFilter.impact}
)}
{!loading && state.risks.length > 0 && (
{matrixFilter ? `Risiken (L=${matrixFilter.likelihood}, I=${matrixFilter.impact})` : 'Alle Risiken'}
{filteredRisks.map(risk => (
handleEdit(risk)}
onDelete={() => handleDelete(risk.id)}
onStatusChange={(status) => handleStatusChange(risk.id, status)}
/>
))}
)}
{!loading && state.risks.length === 0 && !showForm && (
Keine Risiken erfasst
Beginnen Sie mit der Erfassung von Risiken fuer Ihre KI-Anwendungen.
)}
)
}