api+admin: let the curator take a photo off the landing, not just move it

Uploads still land in the community strip with consent on, by the uploader's own
tick — that default stays. What was missing is the curator's removal: the slot
select only offered the other three live placements, so "off the strip" meant
publishing the photo somewhere else or deleting the uploader's row.

`off` is a fifth slot value. The reel draws slot === 'strip' and each live slot
draws its own, so an `off` photo renders nowhere on the landing, while its owner
still has it in MY PHOTOS.
This commit is contained in:
2026-09-18 15:07:04 +07:00
parent dcea6b926f
commit 97836fde8a
6 changed files with 26 additions and 8 deletions
+3 -2
View File
@@ -32,8 +32,9 @@ export interface SavedRecipe {
// Where a curated photo may appear on the landing page. `strip` is the
// community reel; the rest are the three live slots, each of which shows one
// random photo out of its set per page load.
export type PhotoSlot = 'strip' | 'tester' | 'creator' | 'qr';
// random photo out of its set per page load. `off` keeps the row but takes it
// off the landing entirely — the curator's removal.
export type PhotoSlot = 'strip' | 'tester' | 'creator' | 'qr' | 'off';
// A strip contribution as the public sees it — the API never puts an email on
// this shape. `tag`/`title`/`meta` are the frame's own labels (the amber