From a2d4cb29fc458d06e622a32ce618e5c03319ba26 Mon Sep 17 00:00:00 2001 From: Marco Date: Wed, 26 Aug 2026 22:50:11 +0000 Subject: [PATCH] Fix Page Builder's QuoteBlock label being silently ignored MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit app/components/Quote.tsx (the shared component PageBlocks.tsx/Pages.layout uses) never had a `label` prop at all — dropped when it was extracted from RichText.tsx's own local Quote. QuoteBlock.label was set correctly in the admin and mapped through payload.ts, but PageBlocks.tsx's "quote" case never passed it through, and even if it had, this component had nowhere to put it. Both fixed; matches RichText.tsx's existing label treatment. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01J1Hu5bZ1kZUgKhab6yNwCt --- app/components/PageBlocks.tsx | 2 +- app/components/Quote.tsx | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/components/PageBlocks.tsx b/app/components/PageBlocks.tsx index 908b804..f5d5686 100644 --- a/app/components/PageBlocks.tsx +++ b/app/components/PageBlocks.tsx @@ -93,7 +93,7 @@ export function renderPageBlockSync(block: PageBlock): React.ReactNode { return ; case "quote": - return {block.text}; + return {block.text}; case "icon": { const SymbolIcon = SYMBOLIC_ICONS[block.icon]; diff --git a/app/components/Quote.tsx b/app/components/Quote.tsx index 5515c9c..1e7473b 100644 --- a/app/components/Quote.tsx +++ b/app/components/Quote.tsx @@ -1,11 +1,17 @@ +import { QuoteLabel } from "./QuoteLabel"; + // Same visual language as RichText.tsx's Quote converter (Caveat script + // brand divider) — extracted here so PageBlocks.tsx (and any future hand- // written page) can reuse it instead of each page defining its own copy, // which is what /lebensuhr, /3x3-system, and /ueber-mich each did before -// this existed. -export function Quote({ children }: { children: React.ReactNode }) { +// this existed. `label` was dropped in that extraction (this component had +// no prop for it at all) — QuoteBlock.label was set in the admin but never +// actually reached the page, unlike RichText.tsx's own local Quote, which +// this now matches. +export function Quote({ label, children }: { label?: string | null; children: React.ReactNode }) { return (
+ {label && }

{children}