a band shows its blocks, from one shared list

Selecting a band showed its name and title and nothing about what was in it — so
adding a block to the thing you were looking at meant going back out to the page.

BandBlocks is that list, used by the band's editor and nested under every band in
the page's structure. Same list, same actions, one component; the galleries panel
taught that lesson once already.

Blocks reorder within a column now. Across columns is the same call — the write
carries the column — but a list per column has no gesture for crossing between
them, and inventing one here would be guessing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-01 22:49:46 +01:00
co-authored by Claude Opus 5
parent a922c6fda2
commit 6a86c69890
4 changed files with 198 additions and 49 deletions
+11
View File
@@ -23,11 +23,14 @@ export const BandSettings = ({
pageId,
band,
onSaved,
blocks,
}: {
pageId: number;
band: { id: number; name: string; title?: string | null };
/** The builder re-reads its sections: the nav's row is this name, and the page draws this title. */
onSaved: () => void;
/** This band's blocks — `BandBlocks`, built by the panel that has the handlers. */
blocks?: React.ReactNode;
}) => {
const client = useClient();
const clientRef = useRef(client);
@@ -92,6 +95,14 @@ export const BandSettings = ({
{saved && <p className="text-xs text-success">Saved</p>}
{error && <p className="text-xs text-destructive">{error}</p>}
{/*
What is in this band, the same list the page's structure nests under every band.
A band selected and its contents not shown would mean going back out to the page to add a block
to the thing you are already looking at.
*/}
{blocks}
</div>
);
};