Skip to content

Commit 23ec764

Browse files
PB-166: Page Builder doesn't implement destroy method
1 parent 0de17d8 commit 23ec764

File tree

6 files changed

+31
-10
lines changed

6 files changed

+31
-10
lines changed

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/column-group/preview.js

Lines changed: 1 addition & 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/js/content-type/slider/preview.js

Lines changed: 13 additions & 2 deletions
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/js/content-type/tabs/preview.js

Lines changed: 2 additions & 2 deletions
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/content-type/column-group/preview.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ export default class Preview extends PreviewCollection {
108108
}, "grid_size");
109109

110110
events.on("contentType:removeAfter", (args: ContentTypeRemovedEventParamsInterface) => {
111-
if (args.parentContentType.id === this.contentType.id) {
111+
if (args.parentContentType && args.parentContentType.id === this.contentType.id) {
112112
_.defer(() => {
113113
this.spreadWidth(args.index);
114114
});

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/slider/preview.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export default class Preview extends PreviewCollection {
4646
private navigationElement: HTMLElement;
4747
private ready: boolean = false;
4848
private childSubscribe: KnockoutSubscription;
49+
private focusedSlideSubscriber: KnockoutSubscription;
4950
private contentTypeHeightReset: boolean;
5051
private mountAfterDeferred: DeferredInterface = deferred();
5152
private afterChildrenRenderDeferred: DeferredInterface = deferred();
@@ -114,7 +115,7 @@ export default class Preview extends PreviewCollection {
114115
});
115116

116117
// Set the stage to interacting when a slide is focused
117-
this.focusedSlide.subscribe((value: number) => {
118+
this.focusedSlideSubscriber = this.focusedSlide.subscribe((value: number) => {
118119
if (value !== null) {
119120
events.trigger("stage:interactionStart");
120121
} else {
@@ -334,6 +335,15 @@ export default class Preview extends PreviewCollection {
334335
this.setFocusedSlide(index);
335336
}
336337

338+
/**
339+
* @inheritdoc
340+
*/
341+
public destroy(): void {
342+
super.destroy();
343+
this.setFocusedSlide(null);
344+
this.focusedSlideSubscriber.dispose();
345+
}
346+
337347
/**
338348
* Bind events
339349
*/
@@ -360,7 +370,7 @@ export default class Preview extends PreviewCollection {
360370
// we need to force update the content of the slider due to KO rendering issues
361371
let newItemIndex: number;
362372
events.on("slide:removeAfter", (args: ContentTypeRemovedEventParamsInterface) => {
363-
if (args.contentType.parentContentType.id === this.contentType.id) {
373+
if (args.parentContentType && args.parentContentType.id === this.contentType.id) {
364374
// Mark the previous slide as active
365375
newItemIndex = (args.index - 1 >= 0 ? args.index - 1 : 0);
366376

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/tabs/preview.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export default class Preview extends PreviewCollection {
9494
});
9595
// Set the active tab to the new position of the sorted tab
9696
events.on("tab-item:removeAfter", (args: ContentTypeRemovedEventParamsInterface) => {
97-
if (args.parentContentType.id === this.contentType.id) {
97+
if (args.parentContentType && args.parentContentType.id === this.contentType.id) {
9898
this.refreshTabs();
9999

100100
// We need to wait for the tabs to refresh before executing the focus
@@ -394,7 +394,7 @@ export default class Preview extends PreviewCollection {
394394
});
395395
// ContentType being removed from container
396396
events.on("tab-item:removeAfter", (args: ContentTypeRemovedParamsInterface) => {
397-
if (args.parentContentType.id === this.contentType.id) {
397+
if (args.parentContentType && args.parentContentType.id === this.contentType.id) {
398398
// Mark the previous tab as active
399399
const newIndex = (args.index - 1 >= 0 ? args.index - 1 : 0);
400400
this.refreshTabs(newIndex, true);

0 commit comments

Comments
 (0)