Added support for single localization

This commit is contained in:
2026-09-08 18:12:58 +02:00
parent e30ac71044
commit 419207ac12
16 changed files with 287 additions and 102 deletions
+24
View File
@@ -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):