Skip to content

Commit 61a1ab7

Browse files
committed
MC-4014: PageBuilder Performance Is Bad With Minimal Content
- Fix issue with sorting slide items
1 parent 1cb9281 commit 61a1ab7

File tree

2 files changed

+72
-78
lines changed

2 files changed

+72
-78
lines changed

app/code/Magento/PageBuilder/view/adminhtml/web/js/binding/sortable-children.js

Lines changed: 34 additions & 38 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/binding/sortable-children.ts

Lines changed: 38 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -32,48 +32,46 @@ ko.bindingHandlers.sortableChildren = {
3232
const instance: ContentTypeCollectionInterface = context.$data.parent;
3333
const options: JQueryUI.SortableOptions = ko.unwrap(valueAccessor());
3434
let originalPosition: number;
35-
_.defer(() => {
36-
$(element).sortable(options)
37-
.on("sortstart", (event: Event, ui: JQueryUI.SortableUIParams) => {
38-
originalPosition = ui.item.index();
39-
draggedContentType = instance.children()[originalPosition] as ContentTypeCollectionInterface;
40-
events.trigger("childContentType:sortStart", {
41-
instance,
42-
originalPosition,
43-
ui,
44-
});
45-
})
46-
.on("sortstop", (event: JQueryEventObject, ui: JQueryUI.SortableUIParams) => {
47-
events.trigger("childContentType:sortStop", {
48-
instance,
49-
ui,
50-
originalPosition,
51-
});
52-
})
53-
.on("sortupdate", function(event: JQueryEventObject, ui: JQueryUI.SortableUIParams) {
54-
if (this === ui.item.parent()[0]) {
55-
const index = ui.item.index();
56-
const targetParent = ko.dataFor(ui.item.parent()[0]).parent;
57-
if (targetParent &&
58-
(originalPosition !== index || draggedContentType.parent !== targetParent)
59-
) {
60-
ui.item.remove();
61-
if (draggedContentType.parent === targetParent) {
62-
moveArrayItem(instance.children, originalPosition, index);
63-
} else {
64-
moveContentType(draggedContentType, index, targetParent);
65-
}
66-
events.trigger("childContentType:sortUpdate", {
67-
instance,
68-
newPosition: index,
69-
originalPosition,
70-
ui,
71-
event,
72-
});
35+
$(element).sortable(options)
36+
.on("sortstart", (event: Event, ui: JQueryUI.SortableUIParams) => {
37+
originalPosition = ui.item.index();
38+
draggedContentType = instance.children()[originalPosition] as ContentTypeCollectionInterface;
39+
events.trigger("childContentType:sortStart", {
40+
instance,
41+
originalPosition,
42+
ui,
43+
});
44+
})
45+
.on("sortstop", (event: JQueryEventObject, ui: JQueryUI.SortableUIParams) => {
46+
events.trigger("childContentType:sortStop", {
47+
instance,
48+
ui,
49+
originalPosition,
50+
});
51+
})
52+
.on("sortupdate", function(event: JQueryEventObject, ui: JQueryUI.SortableUIParams) {
53+
if (this === ui.item.parent()[0]) {
54+
const index = ui.item.index();
55+
const targetParent = ko.dataFor(ui.item.parent()[0]).parent;
56+
if (targetParent &&
57+
(originalPosition !== index || draggedContentType.parent !== targetParent)
58+
) {
59+
ui.item.remove();
60+
if (draggedContentType.parent === targetParent) {
61+
moveArrayItem(instance.children, originalPosition, index);
62+
} else {
63+
moveContentType(draggedContentType, index, targetParent);
7364
}
65+
events.trigger("childContentType:sortUpdate", {
66+
instance,
67+
newPosition: index,
68+
originalPosition,
69+
ui,
70+
event,
71+
});
7472
}
75-
});
76-
});
73+
}
74+
});
7775
},
7876
};
7977

0 commit comments

Comments
 (0)