/** * Registre de blocs DU CLIENT. Le framework fournit le mécanisme * (`createBlockRegistry`) ; ce fichier déclare le set propre au site. gen-block * déclare le renderer sous les imports et insère son enregistrement au marqueur, * dans la chaîne, avant le `;`. * * ── Découpage de bundle ──────────────────────────────────────────────────── * Par défaut gen-block déclare chaque renderer en `React.lazy` → un chunk JS par * bloc, chargé à la demande, au lieu d'un bundle unique parsé sur chaque page, * blocs absents compris. Le rendu reste SSR (streaming) : seul le JS * d'hydratation est différé, et `EditorBlocks` / `PreviewBlockHost` fournissent * la frontière `Suspense` qu'un renderer lazy exige. * * Pour un bloc au-dessus de la ligne de flottaison (héros → LCP), génère-le avec * `--eager` : gen-block écrit alors un import statique, jamais derrière un * `Suspense`. */ import { createBlockRegistry } from "@wp-reactor/editorial" import { lazy } from "react" import { isDev } from "./env" const CtaBannerBlock = lazy(() => import("./blocks/ui/CtaBannerBlock").then((m) => ({ default: m.CtaBannerBlock, })), ) export const blockRegistry = createBlockRegistry({ namespace: "__BLOCK_NAMESPACE__", dev: isDev, }).registerAttributeBlock("cta-banner", CtaBannerBlock, { heading: "string", body: "string", inverted: "boolean", items: "array", }) // @gen:block:block-registry