'use client' import type { Document, Version } from '../_types' const STATUS_STYLES: Record = { draft: { label: 'Entwurf', color: 'bg-gray-100 text-gray-700' }, review: { label: 'Pruefung', color: 'bg-yellow-100 text-yellow-700' }, approved: { label: 'Genehmigt', color: 'bg-blue-100 text-blue-700' }, published: { label: 'Publiziert', color: 'bg-green-100 text-green-700' }, archived: { label: 'Archiviert', color: 'bg-gray-100 text-gray-400' }, rejected: { label: 'Abgelehnt', color: 'bg-red-100 text-red-700' }, } export function VersionsTab({ loading, documents, versions, selectedDocument, setSelectedDocument, onSubmitReview, onApprove, onReject, onPublish, }: { loading: boolean documents: Document[] versions: Version[] selectedDocument: string setSelectedDocument: (id: string) => void onSubmitReview?: (versionId: string) => void onApprove?: (versionId: string) => void onReject?: (versionId: string, comment: string) => void onPublish?: (versionId: string) => void }) { return (

Versionen

{!selectedDocument ? (
Bitte waehlen Sie ein Dokument aus
) : loading ? (
Lade Versionen...
) : versions.length === 0 ? (
Keine Versionen vorhanden
) : (
{versions.map((version) => { const style = STATUS_STYLES[version.status] || STATUS_STYLES.draft return (
v{version.version} {version.language.toUpperCase()} {style.label}

{version.title}

Erstellt: {new Date(version.created_at).toLocaleDateString('de-DE')} {version.published_at && ` | Publiziert: ${new Date(version.published_at).toLocaleDateString('de-DE')}`}

{version.status === 'draft' && onSubmitReview && ( )} {version.status === 'review' && onApprove && ( )} {version.status === 'review' && onReject && ( )} {version.status === 'approved' && onPublish && ( )}
) })}
)}
) }