'use client' import { useState } from 'react' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' import { History, Globe, User } from 'lucide-react' import { ConsentRecord } from './_types' import { useConsents } from './_hooks/useConsents' import { EinwilligungenNavTabs } from './_components/EinwilligungenNavTabs' import { StatsGrid } from './_components/StatsGrid' import { SearchAndFilter } from './_components/SearchAndFilter' import { RecordsTable } from './_components/RecordsTable' import { Pagination } from './_components/Pagination' import { ConsentDetailModal } from './_components/ConsentDetailModal' import BannerConsentsTab from './_components/BannerConsentsTab' type ConsentTab = 'visitors' | 'users' export default function EinwilligungenPage() { const [activeTab, setActiveTab] = useState('visitors') const { records, currentPage, setCurrentPage, totalRecords, globalStats, handleRevoke, } = useConsents() const [filter, setFilter] = useState('all') const [searchQuery, setSearchQuery] = useState('') const [selectedRecord, setSelectedRecord] = useState(null) const filteredRecords = records.filter(record => { const matchesFilter = filter === 'all' || record.consentType === filter || record.status === filter const matchesSearch = searchQuery === '' || record.email.toLowerCase().includes(searchQuery.toLowerCase()) || record.identifier.toLowerCase().includes(searchQuery.toLowerCase()) return matchesFilter && matchesSearch }) const versionUpdates = records.reduce( (acc, r) => acc + r.history.filter(h => h.action === 'version_update').length, 0, ) const stepInfo = STEP_EXPLANATIONS['einwilligungen'] return (
{/* Step Header */} {/* Navigation Tabs */} {/* Consent Type Tabs: Website-Besucher / Login-Nutzer */}
{/* Tab Content */} {activeTab === 'visitors' ? ( ) : ( <> {/* Stats */} {/* Info Banner */}
Consent-Historie aktiviert
Alle Änderungen an Einwilligungen werden protokolliert, inkl. Zustimmungen zu neuen Versionen von AGB, DSI und anderen Dokumenten. Klicken Sie auf "Details" um die vollständige Historie eines Nutzers einzusehen.
{/* Search and Filter */} {/* Records Table */} {/* Pagination */} {/* Detail Modal */} {selectedRecord && ( setSelectedRecord(null)} onRevoke={handleRevoke} /> )} )}
) }