'use client' import { useState, useEffect } from 'react' interface Version { id: string versionNumber: number status: string changeSummary: string | null changedSections: string[] createdBy: string approvedBy: string | null approvedAt: string | null createdAt: string | null } interface VersionHistoryProps { documentType: 'dsfa' | 'vvt' | 'tom' | 'loeschfristen' | 'obligation' documentId: string apiPath: string } export default function VersionHistory({ documentType, documentId, apiPath }: VersionHistoryProps) { const [versions, setVersions] = useState([]) const [loading, setLoading] = useState(true) const [expanded, setExpanded] = useState(false) useEffect(() => { async function load() { try { const res = await fetch(`/api/sdk/v1/compliance/${apiPath}`) if (res.ok) { const data = await res.json() setVersions( (Array.isArray(data) ? data : []).map((v: Record) => ({ id: v.id as string, versionNumber: v.version_number as number, status: v.status as string, changeSummary: v.change_summary as string | null, changedSections: (v.changed_sections || []) as string[], createdBy: v.created_by as string, approvedBy: v.approved_by as string | null, approvedAt: v.approved_at as string | null, createdAt: v.created_at as string | null, })) ) } } catch (e) { console.error('Failed to load versions:', e) } finally { setLoading(false) } } if (documentId) load() }, [documentId, apiPath]) if (loading) return null if (versions.length === 0) return null return (
{expanded && (
{versions.map(v => (
v{v.versionNumber} {v.status} {v.createdAt && ( {new Date(v.createdAt).toLocaleDateString('de-DE')} )}
{v.changeSummary && (

{v.changeSummary}

)} {v.changedSections.length > 0 && (
{v.changedSections.map((s, i) => ( {s} ))}
)}
))}
)}
) }