'use client' import { useState } from 'react' import { useVendorCompliance } from '@/lib/sdk/vendor-compliance' import Link from 'next/link' import { VendorCreateModal } from './_components/VendorCreateModal' import { StatCard } from './_components/StatCard' import { RiskBar } from './_components/RiskBar' import { QuickActionCard } from './_components/QuickActionCard' export default function VendorComplianceDashboard() { const { vendors, processingActivities, contracts, findings, vendorStats, complianceStats, riskOverview, isLoading, } = useVendorCompliance() const [showVendorCreate, setShowVendorCreate] = useState(false) if (isLoading) { return (
) } return (
{/* Header */}

Vendor & Contract Compliance

Übersicht über Verarbeitungsverzeichnis, Vendor Register und Vertragsprüfung

{/* Quick Stats */}
c.reviewStatus === 'COMPLETED').length} geprüft`} href="/sdk/vendor-compliance/contracts" color="green" />
{/* Risk Overview */}
{/* Vendor Risk Distribution */}

Vendor Risiko-Verteilung

Durchschn. Inherent Risk {Math.round(riskOverview.averageInherentRisk)}%
Durchschn. Residual Risk {Math.round(riskOverview.averageResidualRisk)}%
{/* Compliance Score */}

Compliance Status

{Math.round(complianceStats.averageComplianceScore)}%
{complianceStats.resolvedFindings}
Behoben
{complianceStats.openFindings}
Offen
Control Pass Rate {Math.round(complianceStats.controlPassRate)}%
{/* Quick Actions */}
} /> setShowVendorCreate(true)} icon={ } /> } />
{/* Faellige Reviews */}

Fällige Reviews

{vendors .filter((v) => v.nextReviewDate && new Date(v.nextReviewDate) <= new Date()) .slice(0, 5) .map((vendor) => (

{vendor.name}

{vendor.serviceDescription}

Review fällig
))} {vendors.filter((v) => v.nextReviewDate && new Date(v.nextReviewDate) <= new Date()).length === 0 && (
Keine fälligen Reviews
)}
{showVendorCreate && ( setShowVendorCreate(false)} onSuccess={() => { setShowVendorCreate(false); window.location.reload() }} /> )}
) }