Number entries on publish, delete media, read the cover

- drafts stay unnumbered, the number is handed out when an entry goes live
- DELETE /api/v1/media/:id and a delete control in the media library
- cover_media_id in the draft read, coverMediaId and coverUrl in the archive read
This commit is contained in:
Matthias G
2026-08-01 12:25:01 +02:00
parent afaa323848
commit 2fd71fd406
31 changed files with 2286 additions and 76 deletions
+4 -4
View File
@@ -6,7 +6,7 @@ export type PlateSize = 'lead' | 'card' | 'row'
export type PlateProps = {
project: ProjectCodeSource
color: string
number: number
number: number | null
size?: PlateSize
showNumber?: boolean
className?: string
@@ -22,8 +22,8 @@ export function entryNumber(number: number): string {
return String(number).padStart(4, '0')
}
export function entryMark(project: ProjectCodeSource, number: number): string {
return `${projectCode(project)}-${entryNumber(number)}`
export function entryMark(project: ProjectCodeSource, number: number | null): string {
return number === null ? projectCode(project) : `${projectCode(project)}-${entryNumber(number)}`
}
const shells: Record<PlateSize, string> = {
@@ -51,7 +51,7 @@ export function Plate({ project, color, number, size = 'row', showNumber = true,
className={`${projectSurface} ${shells[size]} font-mono font-semibold text-paper ${className ?? ''}`}
>
<span className={`block uppercase ${codeSizes[size]}`}>{projectCode(project)}</span>
{showNumber ? (
{showNumber && number !== null ? (
<span className={`block tabular-nums ${numberSizes[size]}`}>{entryNumber(number)}</span>
) : null}
</span>