@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
38 lines • 1.67 kB
JavaScript
import * as tslib_1 from "tslib";
import { PureComponent } from 'react';
import ProviderFactory from '../../providerFactory';
import { ReactSerializer, renderDocument, } from '../../renderer';
import { defaultSchema } from '../../schema';
var Renderer = (function (_super) {
tslib_1.__extends(Renderer, _super);
function Renderer(props) {
var _this = _super.call(this, props) || this;
_this.providerFactory = props.dataProviders || new ProviderFactory();
_this.updateSerializer(props);
return _this;
}
Renderer.prototype.componentWillReceiveProps = function (nextProps) {
if (nextProps.portal !== this.props.portal) {
this.updateSerializer(nextProps);
}
};
Renderer.prototype.updateSerializer = function (props) {
var eventHandlers = props.eventHandlers, portal = props.portal, rendererContext = props.rendererContext;
this.serializer = new ReactSerializer(this.providerFactory, eventHandlers, portal, rendererContext);
};
Renderer.prototype.render = function () {
var _a = this.props, document = _a.document, schema = _a.schema;
return renderDocument(document, this.serializer, schema || defaultSchema);
};
Renderer.prototype.componentWillUnmount = function () {
var dataProviders = this.props.dataProviders;
// if this is the ProviderFactory which was created in constructor
// it's safe to destroy it on Renderer unmount
if (!dataProviders) {
this.providerFactory.destroy();
}
};
return Renderer;
}(PureComponent));
export default Renderer;
//# sourceMappingURL=index.js.map