From c1a1ce8b7161a9af0b57f06aecc7dfd2f2ef439a Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Wed, 4 Mar 2026 14:27:20 +0100 Subject: [PATCH] feat: Katalogverwaltung ins Compliance SDK integriert (17 Kataloge) Bestehende Catalog-Manager-Komponenten in SDK-Routes eingebunden: - SDKState + Reducer um customCatalogs CRUD erweitert - Neue Route /sdk/catalog-manager mit CatalogManagerContent - Sidebar-Link "Kataloge" mit Database-Icon Co-Authored-By: Claude Opus 4.6 --- .../app/sdk/catalog-manager/page.tsx | 7 ++++ .../components/sdk/Sidebar/SDKSidebar.tsx | 12 ++++++ admin-compliance/lib/sdk/context.tsx | 38 +++++++++++++++++++ admin-compliance/lib/sdk/types.ts | 8 ++++ 4 files changed, 65 insertions(+) create mode 100644 admin-compliance/app/sdk/catalog-manager/page.tsx diff --git a/admin-compliance/app/sdk/catalog-manager/page.tsx b/admin-compliance/app/sdk/catalog-manager/page.tsx new file mode 100644 index 0000000..6d2f46d --- /dev/null +++ b/admin-compliance/app/sdk/catalog-manager/page.tsx @@ -0,0 +1,7 @@ +'use client' + +import CatalogManagerContent from '@/components/catalog-manager/CatalogManagerContent' + +export default function CatalogManagerPage() { + return +} diff --git a/admin-compliance/components/sdk/Sidebar/SDKSidebar.tsx b/admin-compliance/components/sdk/Sidebar/SDKSidebar.tsx index 2ceb81b..d8dd61e 100644 --- a/admin-compliance/components/sdk/Sidebar/SDKSidebar.tsx +++ b/admin-compliance/components/sdk/Sidebar/SDKSidebar.tsx @@ -590,6 +590,18 @@ export function SDKSidebar({ collapsed = false, onCollapsedChange }: SDKSidebarP isActive={pathname === '/sdk/architecture'} collapsed={collapsed} /> + + + + } + label="Kataloge" + isActive={pathname === '/sdk/catalog-manager'} + collapsed={collapsed} + /> + e.id === entryId ? { ...e, data: { ...e.data, ...data }, updatedAt: new Date().toISOString() } : e + ), + }, + }) + } + + case 'DELETE_CUSTOM_CATALOG_ENTRY': { + const { catalogId, entryId } = action.payload + const items = state.customCatalogs[catalogId] || [] + return updateState({ + customCatalogs: { + ...state.customCatalogs, + [catalogId]: items.filter(e => e.id !== entryId), + }, + }) + } + case 'RESET_STATE': return { ...initialState, lastModified: new Date() } diff --git a/admin-compliance/lib/sdk/types.ts b/admin-compliance/lib/sdk/types.ts index e517d53..1b78322 100644 --- a/admin-compliance/lib/sdk/types.ts +++ b/admin-compliance/lib/sdk/types.ts @@ -5,6 +5,8 @@ * checkpoint system, and all compliance-related data structures. */ +import type { CustomCatalogs, CatalogId, CustomCatalogEntry } from './catalog-manager/types' + // ============================================================================= // ENUMS // ============================================================================= @@ -1536,6 +1538,9 @@ export interface SDKState { securityIssues: SecurityIssue[] securityBacklog: BacklogItem[] + // Catalog Manager + customCatalogs: CustomCatalogs + // UI State commandBarHistory: CommandHistory[] recentSearches: string[] @@ -1621,6 +1626,9 @@ export type SDKAction = | { type: 'UPDATE_BACKLOG_ITEM'; payload: { id: string; data: Partial } } | { type: 'ADD_COMMAND_HISTORY'; payload: CommandHistory } | { type: 'SET_PREFERENCES'; payload: Partial } + | { type: 'ADD_CUSTOM_CATALOG_ENTRY'; payload: CustomCatalogEntry } + | { type: 'UPDATE_CUSTOM_CATALOG_ENTRY'; payload: { catalogId: CatalogId; entryId: string; data: Record } } + | { type: 'DELETE_CUSTOM_CATALOG_ENTRY'; payload: { catalogId: CatalogId; entryId: string } } | { type: 'RESET_STATE' } // =============================================================================