added /dist
This commit is contained in:
Vendored
+44
@@ -0,0 +1,44 @@
|
||||
import { jsx as _jsx } from "react/jsx-runtime";
|
||||
import { Fragment } from 'react';
|
||||
/**
|
||||
* Generic, server-side block renderer.
|
||||
*
|
||||
* Iterates a document's blocks and renders each via the client's component
|
||||
* map. Unknown blocks are skipped (null), never thrown. Block-specific logic is
|
||||
* delegated to the client's optional `enhanceProps` — the plugin itself is
|
||||
* block-agnostic.
|
||||
*
|
||||
* The client owns components and block schemas (they pass `components` and
|
||||
* define blocks in their config); the plugin owns only the iteration and
|
||||
* wiring. No wrapper markup is added — spacing/layout belong to the client's
|
||||
* components.
|
||||
*
|
||||
* Nested blocks: a block that needs to render child blocks should render its
|
||||
* own <RenderBlocks> and import the registry itself, rather than receiving the
|
||||
* component map as a prop. Passing the map as a prop breaks React Server
|
||||
* Components — functions (client components) can't cross the server→client
|
||||
* boundary via props.
|
||||
*/ export function RenderBlocks({ blocks, components, enhanceProps }) {
|
||||
if (!blocks || !Array.isArray(blocks) || blocks.length === 0) {
|
||||
return null;
|
||||
}
|
||||
return /*#__PURE__*/ _jsx(Fragment, {
|
||||
children: blocks.map((block, index)=>{
|
||||
const Component = components[block.blockType];
|
||||
if (!Component) {
|
||||
return null;
|
||||
}
|
||||
const extra = enhanceProps ? enhanceProps({
|
||||
allBlocks: blocks,
|
||||
block,
|
||||
index
|
||||
}) : {};
|
||||
return /*#__PURE__*/ _jsx(Component, {
|
||||
...block,
|
||||
...extra
|
||||
}, index);
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
//# sourceMappingURL=RenderBlocks.js.map
|
||||
Reference in New Issue
Block a user