'use client' import React, { useState } from 'react' import { useRouter } from 'next/navigation' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' import { DocumentCard } from './_components/DocumentCard' import { useConsentDocuments } from './_hooks/useConsentDocuments' export default function ConsentPage() { const router = useRouter() const [filter, setFilter] = useState('all') const [showCreateModal, setShowCreateModal] = useState(false) const [newDocForm, setNewDocForm] = useState({ type: 'privacy_policy', name: '', description: '', content: '' }) const [creating, setCreating] = useState(false) const { documents, loading, error, previewDoc, setPreviewDoc, handleRagSuggest, handleCreateDocument, handleDeleteDocument, handlePreview, } = useConsentDocuments() const filteredDocuments = filter === 'all' ? documents : documents.filter(d => d.type === filter || d.status === filter) const activeCount = documents.filter(d => d.status === 'active').length const draftCount = documents.filter(d => d.status === 'draft').length async function onRagSuggest() { const text = await handleRagSuggest(newDocForm.type, newDocForm.name) if (text) setNewDocForm(d => ({ ...d, content: text })) } async function onCreateDocument() { setCreating(true) const ok = await handleCreateDocument(newDocForm) if (ok) { setShowCreateModal(false) setNewDocForm({ type: 'privacy_policy', name: '', description: '', content: '' }) } setCreating(false) } function handleEdit(id: string) { router.push('/sdk/workflow') } const stepInfo = STEP_EXPLANATIONS['consent'] return (
{/* Step Header */} {/* Stats */}
Gesamt
{documents.length}
Aktiv
{activeCount}
Entwuerfe
{draftCount}
Sprachen
{[...new Set(documents.map(d => d.language))].length}
{/* Loading / Error */} {loading && (
Lade Dokumente...
)} {error && (
{error}
)} {/* Quick Actions */}

Schnellaktionen

{/* Filter */}
Filter: {['all', 'privacy-policy', 'terms', 'cookie-policy', 'dpa', 'active', 'draft'].map(f => ( ))}
{/* Documents List */}
{filteredDocuments.map(document => ( ))}
{filteredDocuments.length === 0 && (

Keine Dokumente gefunden

Passen Sie den Filter an oder erstellen Sie ein neues Dokument.

)} {/* Preview Modal */} {previewDoc && (

{previewDoc.name}

)} {/* Create Document Modal */} {showCreateModal && (

Neues Dokument erstellen

setNewDocForm({ ...newDocForm, name: e.target.value })} placeholder="z.B. Datenschutzerklärung Website" className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500" />