'use client' import React, { useState } from 'react' import { useRouter } from 'next/navigation' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' import { useAuditChecklist } from './_hooks/useAuditChecklist' import { ChecklistItemCard } from './_components/ChecklistItemCard' import { LoadingSkeleton } from './_components/LoadingSkeleton' import { SessionHistory } from './_components/SessionHistory' export default function AuditChecklistPage() { const router = useRouter() const [filter, setFilter] = useState('all') const { state, loading, error, setError, activeSessionId, pastSessions, pdfLanguage, setPdfLanguage, generatingPdf, displayItems, handleStatusChange, handleNotesChange, handleExport, handlePdfDownload, handleNewChecklist, } = useAuditChecklist() const filteredItems = filter === 'all' ? displayItems : displayItems.filter(item => item.status === filter || item.category === filter) const compliantCount = displayItems.filter(i => i.status === 'compliant').length const nonCompliantCount = displayItems.filter(i => i.status === 'non-compliant').length const partialCount = displayItems.filter(i => i.status === 'partial').length const notReviewedCount = displayItems.filter(i => i.status === 'not-reviewed').length const progress = displayItems.length > 0 ? Math.round(((compliantCount + partialCount * 0.5) / displayItems.length) * 100) : 0 const stepInfo = STEP_EXPLANATIONS['audit-checklist'] return (
{error && (
{error}
)} {state.requirements.length === 0 && !loading && (

Keine Anforderungen definiert

Bitte definieren Sie zuerst Anforderungen, um die zugehoerige Checkliste zu generieren.

)}

Compliance Audit {new Date().getFullYear()}

Jaehrliche Ueberpruefung der Compliance-Konformitaet

Frameworks: DSGVO, AI Act Letzte Aktualisierung: {new Date().toLocaleDateString('de-DE')} {activeSessionId && ( Session aktiv )}
{progress}%
Fortschritt
Konform
{compliantCount}
Teilweise
{partialCount}
Nicht konform
{nonCompliantCount}
Nicht geprueft
{notReviewedCount}
Filter: {['all', 'not-reviewed', 'non-compliant', 'partial', 'compliant'].map(f => ( ))}
{loading && } {!loading && (
{filteredItems.map(item => ( handleStatusChange(item.id, status)} onNotesChange={(notes) => handleNotesChange(item.id, notes)} onAddEvidence={() => router.push('/sdk/evidence')} /> ))}
)} {!loading && filteredItems.length === 0 && state.requirements.length > 0 && (

Keine Eintraege gefunden

Passen Sie den Filter an.

)}
) }