blocks that draw whatever the page is about

`/collections/amadoras-mythology` and `/collections/70s` are the same page with a different subject.
Building each would be absurd; hard-coding the arrangement would put it out of reach of the admin. So
the arrangement is built once — a template page, composed exactly like any other — and every
collection is drawn through it.

Four blocks read the subject: its name, its description, its specs, its photographs. They hold nothing
at all, not even a reference. `collections` holds no content because the list is a query; these hold
none because the subject is the URL, and the same block draws a different collection on the next
request.

Offered only on a template, and HIDDEN rather than disabled elsewhere. A greyed-out row invites "why
not here", and the answer — this page has no subject — is not something a tooltip fixes. Available and
silently drawing nothing is the worse failure.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-04 14:53:48 +01:00
co-authored by Claude Opus 5
parent ad988e4557
commit 331e615c7c
3 changed files with 64 additions and 5 deletions
+7 -1
View File
@@ -1011,7 +1011,13 @@ export const PageBuilderPanel = () => {
onCreate={(values) => void createSection(values)}
/>
<AddComponentDialog open={choosing !== null} onCancel={() => setChoosing(null)} onChoose={chooseKind} />
<AddComponentDialog
open={choosing !== null}
onCancel={() => setChoosing(null)}
onChoose={chooseKind}
// Which decides whether the subject blocks are offered — they render nothing anywhere else.
template={page?.is_template}
/>
<MediaPicker
open={picking !== null}