storyblok-rich-text-react-renderer
Advanced tools
Comparing version 1.1.1 to 1.2.0
@@ -109,2 +109,6 @@ import React from 'react'; | ||
blokResolvers = _options$blokResolver === void 0 ? {} : _options$blokResolver, | ||
_options$defaultBlock = options.defaultBlockResolver, | ||
defaultBlockResolver = _options$defaultBlock === void 0 ? function () { | ||
return null; | ||
} : _options$defaultBlock, | ||
_options$nodeResolver = options.nodeResolvers, | ||
@@ -142,3 +146,4 @@ customNodeResolvers = _options$nodeResolver === void 0 ? {} : _options$nodeResolver, | ||
const resolver = blokResolvers[component]; | ||
return resolver ? addKey(resolver(props)) : null; | ||
const element = resolver ? resolver(props) : defaultBlockResolver(component, props); | ||
return addKey(element); | ||
}); | ||
@@ -145,0 +150,0 @@ } else if (node.type === 'text') { |
@@ -115,2 +115,6 @@ 'use strict'; | ||
blokResolvers = _options$blokResolver === void 0 ? {} : _options$blokResolver, | ||
_options$defaultBlock = options.defaultBlockResolver, | ||
defaultBlockResolver = _options$defaultBlock === void 0 ? function () { | ||
return null; | ||
} : _options$defaultBlock, | ||
_options$nodeResolver = options.nodeResolvers, | ||
@@ -148,3 +152,4 @@ customNodeResolvers = _options$nodeResolver === void 0 ? {} : _options$nodeResolver, | ||
const resolver = blokResolvers[component]; | ||
return resolver ? addKey(resolver(props)) : null; | ||
const element = resolver ? resolver(props) : defaultBlockResolver(component, props); | ||
return addKey(element); | ||
}); | ||
@@ -151,0 +156,0 @@ } else if (node.type === 'text') { |
{ | ||
"name": "storyblok-rich-text-react-renderer", | ||
"description": "A React renderer for Storyblok rich text content", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"license": "MIT", | ||
@@ -6,0 +6,0 @@ "main": "dist/index.js", |
@@ -180,2 +180,21 @@ # Storyblok Rich Text Renderer for React | ||
### Default blok resolver | ||
Use the `defaultBlokResolver` option to add a default blok resolver. The function signature is `(name, props) => { ... }`, where `name` is the Storyblok component's "technical" name and `props` is an object that contains all the component's fields, as well as its `_uid` and `_editable` values. | ||
#### Example: | ||
```js | ||
import { render } from 'storyblok-rich-text-react-renderer'; | ||
render(document, { | ||
defaultBlokResolver: (name, props) => ( | ||
<div> | ||
<code>Missing blok resolver for blok type "{name}".</code> | ||
<pre><code>{JSON.stringify(props, undefined, 2)}</code></pre> | ||
</div> | ||
) | ||
}); | ||
``` | ||
## Defaults | ||
@@ -182,0 +201,0 @@ |
@@ -30,2 +30,3 @@ import React from 'react'; | ||
blokResolvers = {}, | ||
defaultBlockResolver = () => null, | ||
nodeResolvers: customNodeResolvers = {}, | ||
@@ -66,3 +67,6 @@ markResolvers: customMarkResolvers = {}, | ||
const resolver = blokResolvers[component]; | ||
return resolver ? addKey(resolver(props)) : null; | ||
const element = resolver | ||
? resolver(props) | ||
: defaultBlockResolver(component, props); | ||
return addKey(element); | ||
}); | ||
@@ -69,0 +73,0 @@ } else if (node.type === 'text') { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
52137
579
223