Skip to content

Commit 3c49bf5

Browse files
committed
PB-390: Nested Page Builder content can fail to save when action is performed quickly
- Use MutationObserver
1 parent 204e76b commit 3c49bf5

File tree

2 files changed

+11
-2
lines changed
  • app/code/Magento/PageBuilder/view/adminhtml/web

2 files changed

+11
-2
lines changed

app/code/Magento/PageBuilder/view/adminhtml/web/js/master-format/render/frame.js

Lines changed: 8 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/master-format/render/frame.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,12 +134,14 @@ function render(message: {stageId: string, tree: TreeItem}) {
134134
* present within the content.
135135
*/
136136
const renderFinished = $.Deferred();
137-
element.addEventListener("DOMSubtreeModified", () => {
137+
const observer = new MutationObserver(() => {
138138
assertRenderFinished(element, countContentTypes(rootContainer), renderFinished.resolve);
139139
});
140+
observer.observe(element, { attributes: true, childList: true, subtree: true });
140141

141142
// Combine this event with our engine waitForRenderFinish to ensure rendering is completed
142143
$.when(engine.waitForFinishRender(), renderFinished).then(() => {
144+
observer.disconnect();
143145
ko.cleanNode(element);
144146
const filtered: JQuery = filterHtml($(element));
145147
const output = decodeAllDataUrlsInString(filtered.html());

0 commit comments

Comments
 (0)