UNPKG

@guestbell/react-page-plugins

Version:

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

46 lines 1.55 kB
import * as React from 'react'; import { ContentType } from '../../types/content/enum/ContentType'; import SlateRenderer from '../slateRenderer/SlateRenderer'; import migrations from '../../slateMigrations/migrations'; import rules from '../slateRenderer/rules'; import Editor from '@react-page/editor'; var ContentRenderer = function ContentRenderer(props) { var value = props.value, lang = props.lang, defaultLang = props.defaultLang, showInvalid = props.showInvalid; var instance = value && value.data && value.data.find(function (d) { return d.lang === lang; }); var defInstance = value && value.data && value.data.find(function (d) { return d.lang === defaultLang; }); if (!instance || instance.useDefault || !showInvalid && !instance.isValid) { instance = defInstance; } if (!instance) { return null; } if (value.type === ContentType.Plain) { return /*#__PURE__*/React.createElement(React.Fragment, null, instance.data); } if (value.type === ContentType.Slate) { return /*#__PURE__*/React.createElement(SlateRenderer, { value: instance.data, migrations: migrations, textRule: rules.textRule, nodeRule: rules.nodeRule, version: instance.version }); } if (value.type === ContentType.ReactPage) { return /*#__PURE__*/React.createElement(Editor, { value: instance.data, cellPlugins: props.reactPagePlugins, readOnly: true }); } return null; }; export default ContentRenderer; //# sourceMappingURL=ContentRenderer.js.map