'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, useEffect } from 'react' import { useRouter } from 'next/navigation' import Link from 'next/link' import { useSDK } from '@/lib/sdk' import StepHeader from '@/components/sdk/StepHeader/StepHeader' // API Proxy URL (avoids CORS issues) const API_BASE = '/api/admin/consent' type Tab = 'documents' | 'versions' | 'emails' | 'gdpr' | 'stats' interface Document { id: string type: string name: string description: string mandatory: boolean created_at: string updated_at: string } interface Version { id: string document_id: string version: string language: string title: string content: string status: string created_at: string } // Email template editor types interface EmailTemplateData { key: string subject: string body: string } // ============================================================================ // Helper sub-components for API-backed inline editors // ============================================================================ function ApiTemplateEditor({ template, saving, onSave, onPreview, }: { template: { id: string; template_key: string; subject: string; body: string; language: string; is_active: boolean } saving: boolean onSave: (subject: string, body: string) => void onPreview: (subject: string, body: string) => void }) { const [subject, setSubject] = useState(template.subject) const [body, setBody] = useState(template.body) const [expanded, setExpanded] = useState(false) return (
{template.template_key}

{subject}

{template.language}
{expanded && (
setSubject(e.target.value)} className="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" />