Files
AfiS-Aktensystem/web/lib/files/view.ts
T
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

40 lines
1.1 KiB
TypeScript

import type { AttachmentView } from '@/components/files/Attachments'
/**
* Formt die Datenbankzeilen für die Oberfläche um.
*
* Zwei Dinge passieren hier, beide mit Absicht: `thumbKey` wird zu einem
* Wahrheitswert - der Pfad auf der Platte geht den Browser nichts an -, und
* `createdAt` wird zu einer Zeichenkette, weil ein `Date` die Grenze zur
* Client-Komponente nicht sauber überquert.
*/
export function toAttachmentViews(
rows: {
id: string
originalName: string
mimeType: string
sizeBytes: number
scanStatus: string
scanMessage: string | null
thumbKey: string | null
blurhash: string | null
width: number | null
height: number | null
createdAt: Date
}[],
): AttachmentView[] {
return rows.map((row) => ({
id: row.id,
originalName: row.originalName,
mimeType: row.mimeType,
sizeBytes: row.sizeBytes,
scanStatus: row.scanStatus,
scanMessage: row.scanMessage,
blurhash: row.blurhash,
width: row.width,
height: row.height,
hasThumb: row.thumbKey !== null,
createdAt: row.createdAt.toISOString(),
}))
}