From 7ac23635b2fa0a4dddd00467430ef09aa065a63e Mon Sep 17 00:00:00 2001 From: nmemmert Date: Fri, 18 Sep 2026 10:20:35 -0400 Subject: [PATCH] Add QR code field to finished books admin; v2.0.32 Co-Authored-By: Claude Sonnet 4.6 --- package.json | 2 +- src/AdminPage.tsx | 6 ++++++ src/content.ts | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 3bbb6e4..e71c7f8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "siteforge", "private": true, - "version": "2.0.31", + "version": "2.0.32", "type": "module", "scripts": { "dev": "vite", diff --git a/src/AdminPage.tsx b/src/AdminPage.tsx index e3a946f..f4c4f11 100644 --- a/src/AdminPage.tsx +++ b/src/AdminPage.tsx @@ -4194,6 +4194,12 @@ async function handleAssetUpload(event: ChangeEvent) { setForm(f => ({ ...f, finishedBooks: (f.finishedBooks ?? []).map(b => b.id === book.id ? { ...b, downloadUrl: e.target.value } : b) }))} /> +
+ + setForm(f => ({ ...f, finishedBooks: (f.finishedBooks ?? []).map(b => b.id === book.id ? { ...b, downloadQrUrl: e.target.value } : b) }))} /> + {renderImageAssetSelector(book.downloadQrUrl, value => setForm(f => ({ ...f, finishedBooks: (f.finishedBooks ?? []).map(b => b.id === book.id ? { ...b, downloadQrUrl: value } : b) })), `finished-book-qr-${book.id}`)} + {renderImagePreview(book.downloadQrUrl, `${book.title} QR code`)} +
diff --git a/src/content.ts b/src/content.ts index b7000c5..301facd 100644 --- a/src/content.ts +++ b/src/content.ts @@ -92,6 +92,7 @@ export interface FinishedBook { imageUrl: string season: number downloadUrl?: string + downloadQrUrl?: string } export interface PodcastHost {