'use client'; import { useState } from 'react'; import { useDSGVO } from '@breakpilot/compliance-sdk-react'; import Link from 'next/link'; import { ArrowLeft, ClipboardCheck, Plus, Search, Filter, MoreVertical, CheckCircle, XCircle, Clock, } from 'lucide-react'; export default function ConsentManagementPage() { const { consents, grantConsent, revokeConsent, isLoading } = useDSGVO(); const [searchQuery, setSearchQuery] = useState(''); const [filterPurpose, setFilterPurpose] = useState('all'); const purposes = [ { id: 'analytics', name: 'Analytics', description: 'Website usage tracking' }, { id: 'marketing', name: 'Marketing', description: 'Marketing communications' }, { id: 'functional', name: 'Functional', description: 'Enhanced features' }, { id: 'necessary', name: 'Necessary', description: 'Essential cookies' }, ]; const filteredConsents = consents?.filter((consent) => { const matchesSearch = consent.userId.toLowerCase().includes(searchQuery.toLowerCase()) || consent.purpose.toLowerCase().includes(searchQuery.toLowerCase()); const matchesPurpose = filterPurpose === 'all' || consent.purpose === filterPurpose; return matchesSearch && matchesPurpose; }); const stats = { total: consents?.length ?? 0, granted: consents?.filter((c) => c.granted).length ?? 0, revoked: consents?.filter((c) => !c.granted).length ?? 0, pending: consents?.filter((c) => c.granted === null).length ?? 0, }; return (
{/* Header */}

Einwilligungen

Art. 6, 7 DSGVO - Consent Management

{/* Stats */}
{stats.total}
Total
{stats.granted}
Granted
{stats.revoked}
Revoked
{stats.pending}
Pending
{/* Filters */}
setSearchQuery(e.target.value)} className="w-full pl-10 pr-4 py-2 border rounded-lg bg-background focus:outline-none focus:ring-2 focus:ring-primary" />
{/* Consent List */}
{filteredConsents?.map((consent) => ( ))} {(!filteredConsents || filteredConsents.length === 0) && ( )}
User ID Purpose Status Source Created Actions
{consent.userId} {consent.purpose} {consent.granted ? ( Granted ) : consent.granted === false ? ( Revoked ) : ( Pending )} {consent.source || 'Website'} {consent.createdAt ? new Date(consent.createdAt).toLocaleDateString('de-DE') : '-'}
No consents found
); }