Skip to content

Commit 3cdc6af

Browse files
refactor: refactored event listeners
1 parent 64c4b07 commit 3cdc6af

File tree

1 file changed

+24
-21
lines changed

1 file changed

+24
-21
lines changed

cms/static/js/views/pages/container.js

+24-21
Original file line numberDiff line numberDiff line change
@@ -962,15 +962,17 @@ function($, _, Backbone, gettext, BasePage,
962962
} catch (e) {
963963
console.error(e);
964964
}
965-
return window.addEventListener(
966-
'message',
967-
(event) => {
968-
if (event.data && event.data.type === 'completeXBlockDuplicating') {
969-
return self.onNewXBlock(placeholderElement, null, true, event.data.payload);
970-
}
971-
},
972-
{ once: true }
973-
);
965+
966+
const messageHandler = ({ data }) => {
967+
if (data && data.type === 'completeXBlockDuplicating') {
968+
self.onNewXBlock(placeholderElement, null, true, data.payload);
969+
window.removeEventListener('message', messageHandler);
970+
}
971+
};
972+
973+
window.addEventListener('message', messageHandler);
974+
975+
return;
974976
}
975977

976978
XBlockUtils.duplicateXBlock(xblockElement, parentElement)
@@ -989,18 +991,19 @@ function($, _, Backbone, gettext, BasePage,
989991
id: xblockElement.data('locator')
990992
});
991993

992-
if (this.options.isIframeEmbed) {
993-
return window.addEventListener(
994-
'message',
995-
({ data }) => {
996-
if (data && data.type === 'completeXBlockDeleting') {
997-
const targetXBlockElement = $(`[data-locator="${data.payload.locator}"]`);
998-
return self.onDelete(targetXBlockElement);
999-
}
1000-
},
1001-
{ once: true }
1002-
);
1003-
}
994+
if (this.options.isIframeEmbed) {
995+
const messageHandler = ({ data }) => {
996+
if (data && data.type === 'completeXBlockDeleting') {
997+
const targetXBlockElement = $(`[data-locator="${data.payload.locator}"]`);
998+
window.removeEventListener('message', messageHandler);
999+
return self.onDelete(targetXBlockElement);
1000+
}
1001+
};
1002+
1003+
window.addEventListener('message', messageHandler);
1004+
1005+
return;
1006+
}
10041007

10051008
XBlockUtils.deleteXBlock(xblockInfo).done(function() {
10061009
self.onDelete(xblockElement);

0 commit comments

Comments
 (0)