Add QR code field to finished books admin; v2.0.32
Publish Container / docker (push) Successful in 14m33s

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nmemmertandClaude Sonnet 4.6 committed 2026-09-18 10:20:35 -04:00
1 parent e86594b096
commit 7ac23635b2
3 files changed
+8 -1

No files matched your search

+6
View File
@@ -4194,6 +4194,12 @@ async function handleAssetUpload(event: ChangeEvent<HTMLInputElement>) {
<label>Download URL <span style={{ fontWeight: 400, opacity: 0.7 }}>(ZIP — Google Drive, Dropbox, etc.)</span></label>
<input type="url" placeholder="https://drive.google.com/…" value={book.downloadUrl ?? ''} onChange={e => setForm(f => ({ ...f, finishedBooks: (f.finishedBooks ?? []).map(b => b.id === book.id ? { ...b, downloadUrl: e.target.value } : b) }))} />
</div>
<div className="admin-field">
<label>Download QR Code <span style={{ fontWeight: 400, opacity: 0.7 }}>(image URL)</span></label>
<input type="url" placeholder="https://…/qr.png" value={book.downloadQrUrl ?? ''} onChange={e => 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`)}
</div>
</div>
<button type="button" className="btn-admin-remove" onClick={() => setForm(f => ({ ...f, finishedBooks: (f.finishedBooks ?? []).filter(b => b.id !== book.id) }))}>Remove</button>
</div>
+1
View File
@@ -92,6 +92,7 @@ export interface FinishedBook {
imageUrl: string
season: number
downloadUrl?: string
downloadQrUrl?: string
}
export interface PodcastHost {