'use client' /** * Datenpunktkatalog Seite * * Zeigt den vollstaendigen Katalog aller personenbezogenen Daten, * die vom Unternehmen verarbeitet werden. */ import { useState, useEffect } from 'react' import { useSDK } from '@/lib/sdk' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' import { DataPointCatalog } from '@/components/sdk/einwilligungen' import { EinwilligungenProvider, useEinwilligungen, } from '@/lib/sdk/einwilligungen/context' import { PREDEFINED_DATA_POINTS, RETENTION_MATRIX, } from '@/lib/sdk/einwilligungen/catalog/loader' import { DataPoint, SupportedLanguage, CATEGORY_METADATA, RISK_LEVEL_STYLING, LEGAL_BASIS_INFO, } from '@/lib/sdk/einwilligungen/types' import { Plus, Download, Upload, Filter, BarChart3, Shield, FileText, Cookie, Clock, ChevronRight, } from 'lucide-react' import Link from 'next/link' // ============================================================================= // CATALOG CONTENT COMPONENT // ============================================================================= function CatalogContent() { const { state } = useSDK() const { allDataPoints, selectedDataPointsData, categoryStats, riskStats, legalBasisStats, toggleDataPoint, setActiveTab, state: einwilligungenState, } = useEinwilligungen() const [language, setLanguage] = useState('de') const [selectedIds, setSelectedIds] = useState( allDataPoints.map((dp) => dp.id) ) // Stats const totalDataPoints = allDataPoints.length const customDataPoints = allDataPoints.filter((dp) => dp.isCustom).length const highRiskCount = riskStats.HIGH || 0 const consentRequiredCount = allDataPoints.filter((dp) => dp.requiresExplicitConsent).length const handleToggle = (id: string) => { setSelectedIds((prev) => prev.includes(id) ? prev.filter((i) => i !== id) : [...prev, id] ) } const handleSelectAll = () => { setSelectedIds(allDataPoints.map((dp) => dp.id)) } const handleDeselectAll = () => { setSelectedIds([]) } const stepInfo = STEP_EXPLANATIONS['einwilligungen'] || { title: 'Datenpunktkatalog', description: 'Verwalten Sie alle personenbezogenen Daten, die Ihr Unternehmen verarbeitet.', explanation: 'Der Datenpunktkatalog ist die Grundlage fuer Ihre Datenschutzerklaerung, den Cookie-Banner und die Loeschfristen.', tips: [], } return (
{/* Step Header */}
{/* Navigation Cards */}
Datenschutzerklaerung
DSI aus Katalog generieren
Cookie-Banner
Banner konfigurieren
Loeschfristen
Retention Matrix anzeigen
Consent-Tracking
Einwilligungen verwalten
{/* Stats */}
Datenpunkte gesamt
{totalDataPoints}
Ausgewaehlt
{selectedIds.length}
Benutzerdefiniert
{customDataPoints}
Hohes Risiko
{highRiskCount}
Einwilligung erforderlich
{consentRequiredCount}
{/* Add Custom Data Point Button */}
{/* Catalog */}
) } // ============================================================================= // MAIN PAGE // ============================================================================= export default function CatalogPage() { return ( ) }