'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}
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.
)}
)
}