@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
40 lines • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = require("react");
var providerFactory_1 = require("../../providerFactory");
var renderer_1 = require("../../renderer");
var schema_1 = require("../../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_1.default();
_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 renderer_1.ReactSerializer(this.providerFactory, eventHandlers, portal, rendererContext);
};
Renderer.prototype.render = function () {
var _a = this.props, document = _a.document, schema = _a.schema;
return renderer_1.renderDocument(document, this.serializer, schema || schema_1.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;
}(react_1.PureComponent));
exports.default = Renderer;
//# sourceMappingURL=index.js.map