'use client' import React from 'react' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' import { EvidenceCard } from './_components/EvidenceCard' import { LoadingSkeleton } from './_components/LoadingSkeleton' import { useEvidence } from './_hooks/useEvidence' export default function EvidencePage() { const { state, filter, setFilter, loading, error, setError, uploading, fileInputRef, page, setPage, pageSize, total, displayEvidence, filteredEvidence, validCount, expiredCount, pendingCount, handleDelete, handleView, handleDownload, handleUploadClick, handleFileChange, } = useEvidence() const stepInfo = STEP_EXPLANATIONS['evidence'] return (
{/* Hidden file input */} {/* Step Header */} {/* Error Banner */} {error && (
{error}
)} {/* Controls Alert */} {state.controls.length === 0 && !loading && (

Keine Kontrollen definiert

Bitte definieren Sie zuerst Kontrollen, um die zugehoerigen Nachweise zu laden.

)} {/* Stats */}
Gesamt
{displayEvidence.length}
Gueltig
{validCount}
Abgelaufen
{expiredCount}
Pruefung ausstehend
{pendingCount}
{/* Filter */}
Filter: {['all', 'valid', 'expired', 'pending-review', 'document', 'certificate', 'audit-report'].map(f => ( ))}
{/* Loading State */} {loading && } {/* Evidence List */} {!loading && (
{filteredEvidence.map(ev => ( handleDelete(ev.id)} onView={() => handleView(ev)} onDownload={() => handleDownload(ev)} /> ))}
)} {/* Pagination */} {!loading && total > pageSize && (
Zeige {((page - 1) * pageSize) + 1}–{Math.min(page * pageSize, total)} von {total} Nachweisen
Seite {page} von {Math.ceil(total / pageSize)}
)} {!loading && filteredEvidence.length === 0 && state.controls.length > 0 && (

Keine Nachweise gefunden

Passen Sie den Filter an oder laden Sie neue Nachweise hoch.

)}
) }