'use client' /** * Consent Management Page (SDK Version) * * Admin interface for managing: * - Documents (AGB, Privacy, etc.) * - Document Versions * - Email Templates * - GDPR Processes (Art. 15-21) * - Statistics */ import { useState } from 'react' import { useRouter } from 'next/navigation' import { useSDK } from '@/lib/sdk' import StepHeader from '@/components/sdk/StepHeader/StepHeader' import type { Tab, EmailTemplateData } from './_types' import { useConsentData } from './_hooks/useConsentData' import { DocumentsTab } from './_components/DocumentsTab' import { VersionsTab } from './_components/VersionsTab' import { EmailsTab } from './_components/EmailsTab' import { GdprTab } from './_components/GdprTab' import { StatsTab } from './_components/StatsTab' import { ConsentTemplateCreateModal } from './_components/ConsentTemplateCreateModal' import { EmailTemplateEditModal, EmailTemplatePreviewModal } from './_components/EmailTemplateModals' export default function ConsentManagementPage() { const { state } = useSDK() const router = useRouter() const [activeTab, setActiveTab] = useState('documents') const [showCreateTemplateModal, setShowCreateTemplateModal] = useState(false) const [selectedDocument, setSelectedDocument] = useState('') const [editingTemplate, setEditingTemplate] = useState(null) const [previewTemplate, setPreviewTemplate] = useState(null) const { documents, versions, loading, error, setError, consentStats, dsrCounts, dsrOverview, savedTemplates, saveEmailTemplate, apiEmailTemplates, apiGdprProcesses, templatesLoading, gdprLoading, savingTemplateId, savingProcessId, saveApiEmailTemplate, saveApiGdprProcess, loadApiEmailTemplates, authToken, setAuthToken, } = useConsentData(activeTab, selectedDocument) const tabs: { id: Tab; label: string }[] = [ { id: 'documents', label: 'Dokumente' }, { id: 'versions', label: 'Versionen' }, { id: 'emails', label: 'E-Mail Vorlagen' }, { id: 'gdpr', label: 'DSGVO Prozesse' }, { id: 'stats', label: 'Statistiken' }, ] return (
{/* Token Input */} {!authToken && (
{ setAuthToken(e.target.value) localStorage.setItem('bp_admin_token', e.target.value) }} />
)} {/* Tabs */}
{tabs.map((tab) => ( ))}
{/* Content */}
{error && (
{error}
)}
{activeTab === 'documents' && ( )} {activeTab === 'versions' && ( )} {activeTab === 'emails' && ( )} {activeTab === 'gdpr' && ( )} {activeTab === 'stats' && }
{/* Email Template Edit Modal */} {editingTemplate && ( setEditingTemplate(null)} onSave={(tpl) => { saveEmailTemplate(tpl) setEditingTemplate(null) }} /> )} {/* Consent Template Create Modal */} {showCreateTemplateModal && ( setShowCreateTemplateModal(false)} onSuccess={() => { setShowCreateTemplateModal(false); loadApiEmailTemplates() }} /> )} {/* Email Template Preview Modal */} {previewTemplate && ( setPreviewTemplate(null)} /> )}
) }