Files
Harlekin e0b03ea336
Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s
Gedankenstriche durch Bindestriche ersetzt
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die
README; an keiner Stelle Bedeutung, nur Zeichensetzung.
2026-09-04 08:54:52 +02:00

61 lines
1.7 KiB
TypeScript

import Link from 'next/link'
import { de } from '@/lib/i18n/de'
import { StampMark, classificationEdgeStyle } from '@/components/StampMark'
type Eintrag = {
id: string
documentNumber: string
title: string
status: string
layout: string
classification: number
createdAt: Date
retractedAt: Date | null
}
/**
* Dokumente eines Besitzers. Die Liste ist bereits gefiltert - was hier
* ankommt, darf der Leser sehen. Kein Ausblenden im Client.
*/
export function DocumentList({
documents,
levelName,
}: {
documents: Eintrag[]
levelName: Map<number, string>
}) {
if (documents.length === 0) {
return <p className="text-text-dim">{de.document.empty}</p>
}
return (
<ul className="border-t border-line">
{documents.map((doc) => (
<li key={doc.id} className="border-b border-line">
<Link
href={`/dokumente/${doc.documentNumber}`}
prefetch
className="record-row py-3 pl-3 text-text no-underline"
style={classificationEdgeStyle(doc.classification)}
>
<span className="record-key">{doc.documentNumber}</span>
<span className={`record-title ${doc.retractedAt ? 'line-through text-text-dim' : ''}`}>
{doc.title}
</span>
<span className="record-meta">
{de.document.layoutNames[doc.layout] ?? doc.layout}
</span>
<span className="record-meta">
{de.document.statusNames[doc.status] ?? doc.status}
</span>
<StampMark
level={doc.classification}
name={levelName.get(doc.classification) ?? de.common.unknown}
/>
</Link>
</li>
))}
</ul>
)
}