@guestbell/react-page-plugins
Version:
Plugins we use in GuestBell for working with amazing react-page package
46 lines • 1.55 kB
JavaScript
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