diff --git a/public/assets/js/bridge/rte-editor.js b/public/assets/js/bridge/rte-editor.js index c2d07ef..2cea681 100644 --- a/public/assets/js/bridge/rte-editor.js +++ b/public/assets/js/bridge/rte-editor.js @@ -75,15 +75,19 @@ const closeModal = () => { editor.__bridgeRteAllowClose = true; editor.__bridgeRteModalOpen = false; + if (typeof modal.__bridgeOriginalClose === 'function') { + modal.__bridgeOriginalClose(); + return; + } if (typeof modal.close === 'function') { modal.close(); - } else { - const mdl = modal.getModel && modal.getModel(); - if (mdl && typeof mdl.set === 'function') { - mdl.set('open', false); - } else if (modal.el) { - modal.el.style.display = 'none'; - } + return; + } + const mdl = modal.getModel && modal.getModel(); + if (mdl && typeof mdl.set === 'function') { + mdl.set('open', false); + } else if (modal.el) { + modal.el.style.display = 'none'; } }; @@ -324,13 +328,17 @@ } catch {} const isTextLike = component && component.is && (component.is('text') || component.is('button') || component.is('link')); try { - if (!isTextLike && component.components) { - component.components(html); - } - if (component.set) { - component.set('content', html); - component.trigger && component.trigger('change:content'); - component.trigger && component.trigger('change:components'); + if (html) { + if (!isTextLike && component.components) { + component.components(html); + } + if (component.set) { + component.set('content', html); + component.trigger && component.trigger('change:content'); + component.trigger && component.trigger('change:components'); + } + } else { + console.warn('[RTE SAVE DEBUG] Skip empty content update.'); } if (component.view && component.view.render) { component.view.render(); @@ -339,7 +347,6 @@ editor.trigger('component:update', component); } } catch {} - try { editor.__bridgeRteAllowClose = true; } catch {} closeModal(); });