diff --git a/paperless-frontend/src/pages/InboxDetailPage.tsx b/paperless-frontend/src/pages/InboxDetailPage.tsx index 9d51f24..e79502e 100644 --- a/paperless-frontend/src/pages/InboxDetailPage.tsx +++ b/paperless-frontend/src/pages/InboxDetailPage.tsx @@ -16,7 +16,7 @@ import { ZoomInOutlined, ZoomOutOutlined, } from '@ant-design/icons'; -import { inboxApi, type InboxFile, type PostprocessActionResult } from '../api/inbox'; +import { inboxApi, type InboxBarcode, type InboxFile, type PostprocessActionResult } from '../api/inbox'; import { paperlessApi } from '../api/paperless'; const ZOOM_MIN = 0.5; @@ -35,7 +35,7 @@ function buildDocuments( pageCount: number, splitPages: number[], deletedPages: number[], - barcodes: import('../api/inbox').InboxBarcode[], + barcodes: InboxBarcode[], ): DocumentSegment[] { if (pageCount === 0) return []; const deleted = new Set(deletedPages); @@ -55,15 +55,14 @@ function buildDocuments( docs.push({ index: docs.length, pages: current, belegname: null }); } - // Belegname (DateinameTemplate) pro Segment bestimmen + // Belegname pro Segment: DateinameTemplate des zugehörigen Barcodes, + // Fallback auf templateName falls DateinameTemplate nicht konfiguriert. + const sortedBarcodes = [...barcodes].sort((a, b) => a.page - b.page); return docs.map((seg) => { - let barcode: import('../api/inbox').InboxBarcode | undefined; - if (seg.index === 0) { - barcode = barcodes[0]; - } else { - barcode = barcodes.find((b) => b.splitBefore && b.page === seg.pages[0]); - } - return { ...seg, belegname: barcode?.dateinameTemplate ?? null }; + const pageSet = new Set(seg.pages); + const barcode = sortedBarcodes.find((b) => pageSet.has(b.page)); + const belegname = barcode?.dateinameTemplate || barcode?.templateName || null; + return { ...seg, belegname }; }); }