Add QR code field to finished books admin; v2.0.32
Publish Container / docker (push) Successful in 14m33s
Publish Container / docker (push) Successful in 14m33s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
e86594b096
commit
7ac23635b2
3 files changed
+8
-1
No files matched your search
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "siteforge",
|
||||
"private": true,
|
||||
"version": "2.0.31",
|
||||
"version": "2.0.32",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -92,6 +92,7 @@ export interface FinishedBook {
|
||||
imageUrl: string
|
||||
season: number
|
||||
downloadUrl?: string
|
||||
downloadQrUrl?: string
|
||||
}
|
||||
|
||||
export interface PodcastHost {
|
||||
|
||||
Reference in new issue
Block a user