'use client' import React from 'react' import type { NotfallplanConfig } from './types' export function ConfigTab({ config, setConfig, }: { config: NotfallplanConfig setConfig: React.Dispatch> }) { return (
{/* Meldewege */}

Meldewege (intern → Aufsichtsbehoerde)

Definieren Sie die interne Eskalationskette bei einer Datenpanne.

{config.meldewege.map((step, idx) => (
{step.order}
{ const updated = [...config.meldewege] updated[idx] = { ...updated[idx], role: e.target.value } setConfig(prev => ({ ...prev, meldewege: updated })) }} placeholder="Rolle" className="text-sm border rounded px-2 py-1" /> { const updated = [...config.meldewege] updated[idx] = { ...updated[idx], name: e.target.value } setConfig(prev => ({ ...prev, meldewege: updated })) }} placeholder="Name" className="text-sm border rounded px-2 py-1" /> { const updated = [...config.meldewege] updated[idx] = { ...updated[idx], action: e.target.value } setConfig(prev => ({ ...prev, meldewege: updated })) }} placeholder="Aktion" className="text-sm border rounded px-2 py-1" />
max. {step.maxHours}h
))}
{/* Zustaendigkeiten */}

Zustaendigkeiten

{config.zustaendigkeiten.map((z, idx) => ( ))}
Rolle Name E-Mail Telefon
{z.role} { const updated = [...config.zustaendigkeiten] updated[idx] = { ...updated[idx], name: e.target.value } setConfig(prev => ({ ...prev, zustaendigkeiten: updated })) }} placeholder="Name eingeben" className="w-full text-sm border rounded px-2 py-1" /> { const updated = [...config.zustaendigkeiten] updated[idx] = { ...updated[idx], email: e.target.value } setConfig(prev => ({ ...prev, zustaendigkeiten: updated })) }} placeholder="email@example.com" className="w-full text-sm border rounded px-2 py-1" /> { const updated = [...config.zustaendigkeiten] updated[idx] = { ...updated[idx], phone: e.target.value } setConfig(prev => ({ ...prev, zustaendigkeiten: updated })) }} placeholder="+49..." className="w-full text-sm border rounded px-2 py-1" />
{/* Aufsichtsbehoerde */}

Zustaendige Aufsichtsbehoerde

{(['name', 'state', 'email', 'phone'] as const).map(field => (
setConfig(prev => ({ ...prev, aufsichtsbehoerde: { ...prev.aufsichtsbehoerde, [field]: e.target.value }, }))} placeholder={field === 'name' ? 'z.B. LfD Niedersachsen' : field === 'state' ? 'z.B. Niedersachsen' : field === 'email' ? 'poststelle@lfd.niedersachsen.de' : '+49...'} className="w-full text-sm border rounded px-3 py-2" />
))}
{/* Eskalationsstufen */}

Eskalationsstufen

{config.eskalationsstufen.map((stufe) => (
Stufe {stufe.level} {stufe.label}

Ausloeser: {stufe.triggerCondition}

    {stufe.actions.map((action, i) => (
  • {action}
  • ))}
))}
{/* Sofortmassnahmen-Checkliste */}

Sofortmassnahmen-Checkliste

Diese Massnahmen sind sofort bei Entdeckung einer Datenpanne durchzufuehren.

    {config.sofortmassnahmen.map((m, idx) => (
  • {m}
  • ))}
) }