'use client' import type { Finding } from '../types' import { getSeverityBadge } from '../useSecurityDashboard' interface FindingsTabProps { filteredFindings: Finding[] severityFilter: string | null setSeverityFilter: (filter: string | null) => void toolFilter: string | null setToolFilter: (filter: string | null) => void } const SEVERITY_OPTIONS = ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW', 'INFO'] const TOOL_OPTIONS = ['gitleaks', 'semgrep', 'bandit', 'trivy', 'grype'] export function FindingsTab({ filteredFindings, severityFilter, setSeverityFilter, toolFilter, setToolFilter, }: FindingsTabProps) { return (
{/* Filters */}
{SEVERITY_OPTIONS.map(sev => ( ))} {TOOL_OPTIONS.map(t => ( ))}
{filteredFindings.length === 0 ? (
Keine Findings mit diesem Filter gefunden.
) : (
{filteredFindings.map((finding, idx) => ( ))}
Severity Tool Finding Datei Zeile Gefunden
{finding.severity} {finding.tool}
{finding.title}
{finding.message && (
{finding.message}
)}
{finding.file || '-'} {finding.line || '-'} {finding.found_at ? new Date(finding.found_at).toLocaleDateString('de-DE') : '-'}
)}
) }