From 40df1ab80a6a1e2adaf1727eb8fb59f90d9b584b Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sat, 12 Jun 2021 12:18:39 +0200 Subject: [PATCH] Fix errors on page remove --- src/dom_components/index.js | 11 +++++----- src/editor/model/Editor.js | 40 ++++++++++++++++++++----------------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/dom_components/index.js b/src/dom_components/index.js index dc84c8d39..43eebc39f 100644 --- a/src/dom_components/index.js +++ b/src/dom_components/index.js @@ -350,11 +350,9 @@ export default () => { * @private */ getComponent() { - return this.em - .get('PageManager') - .getSelected() - .getMainFrame() - .getComponent(); + const sel = this.em.get('PageManager').getSelected(); + const frame = sel && sel.getMainFrame(); + return frame && frame.getComponent(); }, /** @@ -399,7 +397,8 @@ export default () => { * wrapperChildren.remove(comp2); */ getComponents() { - return this.getWrapper().get('components'); + const wrp = this.getWrapper(); + return wrp && wrp.get('components'); }, /** diff --git a/src/editor/model/Editor.js b/src/editor/model/Editor.js index 170a4764a..ce74206da 100644 --- a/src/editor/model/Editor.js +++ b/src/editor/model/Editor.js @@ -524,12 +524,14 @@ export default Backbone.Model.extend({ const wrapperIsBody = config.wrapperIsBody; const js = config.jsInHtml ? this.getJs(opts) : ''; var wrp = opts.component || this.get('DomComponents').getComponent(); - var html = this.get('CodeManager').getCode(wrp, 'html', { - exportWrapper, - wrapperIsBody, - ...optsHtml, - ...opts - }); + var html = wrp + ? this.get('CodeManager').getCode(wrp, 'html', { + exportWrapper, + wrapperIsBody, + ...optsHtml, + ...opts + }) + : ''; html += js ? `` : ''; return html; }, @@ -552,15 +554,15 @@ export default Backbone.Model.extend({ const wrp = opts.component || this.get('DomComponents').getComponent(); const protCss = !avoidProt ? config.protectedCss : ''; - return ( - protCss + - this.get('CodeManager').getCode(wrp, 'css', { - cssc, - wrapperIsBody, - keepUnusedStyles, - ...optsCss - }) - ); + return wrp + ? protCss + + this.get('CodeManager').getCode(wrp, 'css', { + cssc, + wrapperIsBody, + keepUnusedStyles, + ...optsCss + }) + : ''; }, /** @@ -570,9 +572,11 @@ export default Backbone.Model.extend({ */ getJs(opts = {}) { var wrp = opts.component || this.get('DomComponents').getWrapper(); - return this.get('CodeManager') - .getCode(wrp, 'js') - .trim(); + return wrp + ? this.get('CodeManager') + .getCode(wrp, 'js') + .trim() + : ''; }, /**