From 375b34a0d8734cc82ef081d4d61c9940dbccc1c6 Mon Sep 17 00:00:00 2001 From: Sharang Parnerkar <30073382+mighty840@users.noreply.github.com> Date: Sun, 12 Apr 2026 15:52:45 +0200 Subject: [PATCH] refactor(admin): split consent-management, control-library, incidents, training pages Agent-completed splits committed after agents hit rate limits before committing their work. All 4 pages now under 500 LOC: - consent-management: 1303 -> 193 LOC (+ 7 _components, _hooks, _data, _types) - control-library: 1210 -> 298 LOC (+ _components, _types) - incidents: 1150 -> 373 LOC (+ _components) - training: 1127 -> 366 LOC (+ _components) Verification: next build clean (142 pages generated). Co-Authored-By: Claude Opus 4.6 (1M context) --- .../_components/ApiGdprProcessEditor.tsx | 73 + .../_components/ApiTemplateEditor.tsx | 87 ++ .../ConsentTemplateCreateModal.tsx | 126 ++ .../_components/DocumentsTab.tsx | 86 ++ .../_components/EmailTemplateModals.tsx | 117 ++ .../_components/EmailsTab.tsx | 138 ++ .../_components/GdprTab.tsx | 152 ++ .../_components/StatsTab.tsx | 35 + .../_components/VersionsTab.tsx | 101 ++ .../app/sdk/consent-management/_data.ts | 80 ++ .../_hooks/useConsentData.ts | 291 ++++ .../app/sdk/consent-management/_types.ts | 63 + .../app/sdk/consent-management/page.tsx | 1246 +---------------- .../control-library/_components/Badges.tsx | 53 + .../_components/ControlDetailView.tsx | 288 ++++ .../_components/ControlForm.tsx | 272 ++++ .../_components/ControlListView.tsx | 221 +++ .../_components/GeneratorModal.tsx | 117 ++ .../app/sdk/control-library/_types.ts | 87 ++ .../app/sdk/control-library/page.tsx | 1012 +------------ .../incidents/_components/CountdownTimer.tsx | 75 + .../sdk/incidents/_components/FilterBar.tsx | 83 ++ .../incidents/_components/IncidentCard.tsx | 125 ++ .../_components/IncidentCreateModal.tsx | 209 +++ .../_components/IncidentDetailDrawer.tsx | 216 +++ .../sdk/incidents/_components/StatCard.tsx | 52 + .../incidents/_components/TabNavigation.tsx | 54 + admin-compliance/app/sdk/incidents/page.tsx | 789 +---------- .../_components/AssignmentDetailDrawer.tsx | 156 +++ .../training/_components/AssignmentsTab.tsx | 85 ++ .../app/sdk/training/_components/AuditTab.tsx | 37 + .../sdk/training/_components/ContentTab.tsx | 148 ++ .../app/sdk/training/_components/KPICard.tsx | 18 + .../training/_components/MatrixAddModal.tsx | 74 + .../sdk/training/_components/MatrixTab.tsx | 68 + .../_components/ModuleCreateModal.tsx | 91 ++ .../training/_components/ModuleEditDrawer.tsx | 103 ++ .../sdk/training/_components/ModulesTab.tsx | 68 + .../sdk/training/_components/OverviewTab.tsx | 85 ++ admin-compliance/app/sdk/training/page.tsx | 883 +----------- 40 files changed, 4319 insertions(+), 3745 deletions(-) create mode 100644 admin-compliance/app/sdk/consent-management/_components/ApiGdprProcessEditor.tsx create mode 100644 admin-compliance/app/sdk/consent-management/_components/ApiTemplateEditor.tsx create mode 100644 admin-compliance/app/sdk/consent-management/_components/ConsentTemplateCreateModal.tsx create mode 100644 admin-compliance/app/sdk/consent-management/_components/DocumentsTab.tsx create mode 100644 admin-compliance/app/sdk/consent-management/_components/EmailTemplateModals.tsx create mode 100644 admin-compliance/app/sdk/consent-management/_components/EmailsTab.tsx create mode 100644 admin-compliance/app/sdk/consent-management/_components/GdprTab.tsx create mode 100644 admin-compliance/app/sdk/consent-management/_components/StatsTab.tsx create mode 100644 admin-compliance/app/sdk/consent-management/_components/VersionsTab.tsx create mode 100644 admin-compliance/app/sdk/consent-management/_data.ts create mode 100644 admin-compliance/app/sdk/consent-management/_hooks/useConsentData.ts create mode 100644 admin-compliance/app/sdk/consent-management/_types.ts create mode 100644 admin-compliance/app/sdk/control-library/_components/Badges.tsx create mode 100644 admin-compliance/app/sdk/control-library/_components/ControlDetailView.tsx create mode 100644 admin-compliance/app/sdk/control-library/_components/ControlForm.tsx create mode 100644 admin-compliance/app/sdk/control-library/_components/ControlListView.tsx create mode 100644 admin-compliance/app/sdk/control-library/_components/GeneratorModal.tsx create mode 100644 admin-compliance/app/sdk/control-library/_types.ts create mode 100644 admin-compliance/app/sdk/incidents/_components/CountdownTimer.tsx create mode 100644 admin-compliance/app/sdk/incidents/_components/FilterBar.tsx create mode 100644 admin-compliance/app/sdk/incidents/_components/IncidentCard.tsx create mode 100644 admin-compliance/app/sdk/incidents/_components/IncidentCreateModal.tsx create mode 100644 admin-compliance/app/sdk/incidents/_components/IncidentDetailDrawer.tsx create mode 100644 admin-compliance/app/sdk/incidents/_components/StatCard.tsx create mode 100644 admin-compliance/app/sdk/incidents/_components/TabNavigation.tsx create mode 100644 admin-compliance/app/sdk/training/_components/AssignmentDetailDrawer.tsx create mode 100644 admin-compliance/app/sdk/training/_components/AssignmentsTab.tsx create mode 100644 admin-compliance/app/sdk/training/_components/AuditTab.tsx create mode 100644 admin-compliance/app/sdk/training/_components/ContentTab.tsx create mode 100644 admin-compliance/app/sdk/training/_components/KPICard.tsx create mode 100644 admin-compliance/app/sdk/training/_components/MatrixAddModal.tsx create mode 100644 admin-compliance/app/sdk/training/_components/MatrixTab.tsx create mode 100644 admin-compliance/app/sdk/training/_components/ModuleCreateModal.tsx create mode 100644 admin-compliance/app/sdk/training/_components/ModuleEditDrawer.tsx create mode 100644 admin-compliance/app/sdk/training/_components/ModulesTab.tsx create mode 100644 admin-compliance/app/sdk/training/_components/OverviewTab.tsx diff --git a/admin-compliance/app/sdk/consent-management/_components/ApiGdprProcessEditor.tsx b/admin-compliance/app/sdk/consent-management/_components/ApiGdprProcessEditor.tsx new file mode 100644 index 0000000..5d63e15 --- /dev/null +++ b/admin-compliance/app/sdk/consent-management/_components/ApiGdprProcessEditor.tsx @@ -0,0 +1,73 @@ +'use client' + +import { useState } from 'react' + +export function ApiGdprProcessEditor({ + process, + saving, + onSave, +}: { + process: { id: string; process_key: string; title: string; description: string; legal_basis: string; retention_days: number; is_active: boolean } + saving: boolean + onSave: (title: string, description: string) => void +}) { + const [title, setTitle] = useState(process.title) + const [description, setDescription] = useState(process.description || '') + const [expanded, setExpanded] = useState(false) + + return ( +
+
+
+
+ {process.legal_basis?.replace('Art. ', '').replace(' DSGVO', '') || '?'} +
+
+

{title}

+

{description || 'Keine Beschreibung'}

+ {process.retention_days && ( + Aufbewahrung: {process.retention_days} Tage + )} +
+
+ +
+ {expanded && ( +
+
+ + setTitle(e.target.value)} + className="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" + /> +
+
+ +