Added support for single localization
This commit is contained in:
@@ -10,6 +10,30 @@ registry (prop), obsługuje zagnieżdżanie i rozszerzenia per-blok. Bloki
|
||||
Brak opcji w payload.config — bloki definiujesz w swoich kolekcjach
|
||||
(pole typu `blocks`). Plugin dostarcza tylko silnik renderujący.
|
||||
|
||||
## ⚠️ NIE pisz własnego renderera bloków (switch)
|
||||
|
||||
**Renderer bloków to `RenderBlocks` z pluginu — NIGDY własny `switch`/`if`.**
|
||||
Częsty błąd: projekt pisze własny `BlockRenderer` z `switch (block.blockType)`
|
||||
i 20 case'ami. To łamie A0 — plugin ma silnik, projekt dostarcza tylko MAPĘ
|
||||
komponentów.
|
||||
|
||||
```tsx
|
||||
// ŹLE — własny switch w projekcie (gadatliwy, bez enhanceProps, rośnie liniowo)
|
||||
switch (block.blockType) {
|
||||
case 'hero': return <Hero {...block} />
|
||||
case 'faq': return <FAQ {...block} />
|
||||
// ...20 case'ów
|
||||
}
|
||||
|
||||
// DOBRZE — mapa + RenderBlocks (silnik z pluginu)
|
||||
const registry = { hero: Hero, faq: FAQ, /* ... */ }
|
||||
<RenderBlocks blocks={page.layout} components={registry} />
|
||||
```
|
||||
|
||||
Dlaczego RenderBlocks, nie switch: enhanceProps (anchory nav, itp.), guardy,
|
||||
obsługa zagnieżdżeń, spójność między projektami. Switch tego nie ma i rośnie
|
||||
z każdym blokiem. Mapa jest płaska i deklaratywna.
|
||||
|
||||
## Front — RenderBlocks
|
||||
|
||||
Import z `@intecion/ipal-kit/rsc` (to komponent serwerowy):
|
||||
|
||||
Reference in New Issue
Block a user