storyblok-rich-text-react-renderer
Advanced tools
Comparing version 2.2.0 to 2.3.0
@@ -169,2 +169,8 @@ import React from 'react'; | ||
return renderNodes(document.content); | ||
} else if (typeof document === 'string') { | ||
const _options$defaultStrin = options.defaultStringResolver, | ||
defaultStringResolver = _options$defaultStrin === void 0 ? function (str) { | ||
return str; | ||
} : _options$defaultStrin; | ||
return defaultStringResolver(document); | ||
} | ||
@@ -171,0 +177,0 @@ |
@@ -5,6 +5,8 @@ 'use strict'; | ||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } | ||
var React = require('react'); | ||
var React = _interopDefault(require('react')); | ||
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } | ||
var React__default = /*#__PURE__*/_interopDefaultLegacy(React); | ||
function _defineProperty(obj, key, value) { | ||
@@ -132,3 +134,3 @@ if (key in obj) { | ||
const addKey = function (element) { | ||
return React.isValidElement(element) ? React.cloneElement(element, { | ||
return React__default['default'].isValidElement(element) ? React__default['default'].cloneElement(element, { | ||
key: currentKey++ | ||
@@ -177,2 +179,8 @@ }) : element; | ||
return renderNodes(document.content); | ||
} else if (typeof document === 'string') { | ||
const _options$defaultStrin = options.defaultStringResolver, | ||
defaultStringResolver = _options$defaultStrin === void 0 ? function (str) { | ||
return str; | ||
} : _options$defaultStrin; | ||
return defaultStringResolver(document); | ||
} | ||
@@ -185,3 +193,3 @@ | ||
return function (children) { | ||
return children != null ? React.createElement(element, null, children) : null; | ||
return children != null ? React__default['default'].createElement(element, null, children) : null; | ||
}; | ||
@@ -192,3 +200,3 @@ }; | ||
return function () { | ||
return React.createElement(element); | ||
return React__default['default'].createElement(element); | ||
}; | ||
@@ -198,7 +206,7 @@ }; | ||
const headingNodeResolver = function (children, props) { | ||
return React.createElement(`h${props.level}`, null, children); | ||
return React__default['default'].createElement(`h${props.level}`, null, children); | ||
}; | ||
const imageNodeResolver = function (children, props) { | ||
return React.createElement('img', props, children); | ||
return React__default['default'].createElement('img', props, children); | ||
}; | ||
@@ -210,4 +218,4 @@ | ||
}; | ||
const code = React.createElement('code', codeProps, children); | ||
return React.createElement('pre', null, code); | ||
const code = React__default['default'].createElement('code', codeProps, children); | ||
return React__default['default'].createElement('pre', null, code); | ||
}; | ||
@@ -217,3 +225,3 @@ | ||
return function (children) { | ||
return React.createElement(element, null, children); | ||
return React__default['default'].createElement(element, null, children); | ||
}; | ||
@@ -231,7 +239,7 @@ }; | ||
}; | ||
return React.createElement('a', props, children); | ||
return React__default['default'].createElement('a', props, children); | ||
}; | ||
const styledMarkResolver = function (children, props) { | ||
return React.createElement('span', { | ||
return React__default['default'].createElement('span', { | ||
className: props.class | ||
@@ -238,0 +246,0 @@ }, children); |
{ | ||
"name": "storyblok-rich-text-react-renderer", | ||
"description": "A React renderer for Storyblok rich text content", | ||
"version": "2.2.0", | ||
"version": "2.3.0", | ||
"license": "MIT", | ||
@@ -31,15 +31,15 @@ "main": "dist/index.js", | ||
"peerDependencies": { | ||
"react": "^16.0.0 || ^17.0.0" | ||
"react": ">=16.0.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.11.0", | ||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", | ||
"@babel/plugin-proposal-object-rest-spread": "^7.11.0", | ||
"@babel/plugin-transform-arrow-functions": "^7.10.4", | ||
"@babel/plugin-transform-destructuring": "^7.10.4", | ||
"@rollup/plugin-babel": "^5.1.0", | ||
"@rollup/plugin-commonjs": "^14.0.0", | ||
"rollup": "^2.23.0", | ||
"rollup-plugin-peer-deps-external": "^2.2.3" | ||
"@babel/core": "^7.13.14", | ||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", | ||
"@babel/plugin-proposal-object-rest-spread": "^7.13.8", | ||
"@babel/plugin-transform-arrow-functions": "^7.13.0", | ||
"@babel/plugin-transform-destructuring": "^7.13.0", | ||
"@rollup/plugin-babel": "^5.3.0", | ||
"@rollup/plugin-commonjs": "^18.0.0", | ||
"rollup": "^2.44.0", | ||
"rollup-plugin-peer-deps-external": "^2.2.4" | ||
} | ||
} |
@@ -64,3 +64,5 @@ # Storyblok Rich Text Renderer for React | ||
nodeResolvers: { ... }, // block elements | ||
blokResolvers: { ... } // embedded components | ||
blokResolvers: { ... }, // embedded components | ||
defaultBlokResolver: (name, props) => ( ... ), | ||
defaultStringResolver: (str) => ( ... ), | ||
}); | ||
@@ -75,3 +77,5 @@ ``` | ||
[blok resolvers](#blok-resolvers) to map them to your React components though, | ||
otherwise they are ignored. | ||
otherwise they are ignored. You can also provide a | ||
[default blok resolver](#default-blok-resolver) if you need a catch-all | ||
solution. | ||
@@ -186,2 +190,6 @@ ### Mark resolvers | ||
### Default string resolver | ||
Storyblok might return a simple string instead of a document object for rich text fields with trivial content. By default, the render function returns this string as-is. Use the `defaultStringResolver` option to customize this behavior. The function signature is `(str) => { ... }`. | ||
#### Example: | ||
@@ -235,1 +243,3 @@ | ||
- 2.1.1 — Allow block elements as children of inline elements (in particular linked images) | ||
- 2.2.0 — Bugfix: Code was still referring to defaultBlockResolver (see 2.0.0) | ||
- 2.3.0 — Add defaultStringResolver, allow plain string as input |
@@ -92,2 +92,5 @@ import React from 'react'; | ||
return renderNodes(document.content); | ||
} else if (typeof document === 'string') { | ||
const { defaultStringResolver = str => str } = options; | ||
return defaultStringResolver(document); | ||
} | ||
@@ -94,0 +97,0 @@ return null; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
55674
607
242