UNPKG

@guestbell/react-page-plugins

Version:

Plugins we use in GuestBell for working with amazing react-page package

44 lines 1.53 kB
import * as React from 'react'; import { Element, Text } from 'slate'; import { Migrator } from '../../slateMigrations/Migrator'; var _RendererRecursive = function RendererRecursive(_ref) { var node = _ref.node, textRule = _ref.textRule, nodeRule = _ref.nodeRule; if (Text.isText(node)) { return textRule(node); } if (Element.isElement(node)) { return nodeRule(node, node.children && /*#__PURE__*/React.createElement(React.Fragment, null, node.children.map(function (n, key) { return /*#__PURE__*/React.createElement(_RendererRecursive, { nodeRule: nodeRule, textRule: textRule, node: n, key: key }); }))); } }; var SlateRenderer = function SlateRenderer(props) { var value = props.value, nodeRule = props.nodeRule, textRule = props.textRule, migrations = props.migrations, version = props.version; var migratedValue = React.useMemo(function () { var migrationResult = Migrator.migrateState(version, value, migrations); return migrationResult.migratedState; }, [props.value]); return /*#__PURE__*/React.createElement("div", { className: "slateRenderer__container" }, migratedValue && Array.isArray(migratedValue) && migratedValue.map(function (node, key) { return /*#__PURE__*/React.createElement(_RendererRecursive, { nodeRule: nodeRule, textRule: textRule, node: node, key: key }); })); }; export default /*#__PURE__*/React.memo(SlateRenderer); //# sourceMappingURL=SlateRenderer.js.map