Skip to content

Commit b43823b

Browse files
committed
MC-4014: PageBuilder Performance Is Bad With Minimal Content
- Resolve issue with duplicating image uploader plugins
1 parent 560ebc9 commit b43823b

File tree

4 files changed

+34
-68
lines changed

4 files changed

+34
-68
lines changed

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

Lines changed: 5 additions & 10 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/image/preview.js

Lines changed: 8 additions & 20 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/banner/preview.ts

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ export default class Preview extends BasePreview {
3232
* The textarea element in disabled mode
3333
*/
3434
private textarea: HTMLTextAreaElement;
35-
/**
36-
* Uploader instance
37-
*/
38-
private uploader: Uploader;
3935

4036
private buttonPlaceholder: string = $t("Edit Button Text");
4137

@@ -45,7 +41,17 @@ export default class Preview extends BasePreview {
4541
* @returns {Uploader}
4642
*/
4743
public getUploader() {
48-
return this.uploader;
44+
const dataStore = this.parent.dataStore.get() as DataObject;
45+
const initialImageValue = dataStore[this.config.additional_data.uploaderConfig.dataScope] || "";
46+
47+
// Create uploader
48+
return new Uploader(
49+
"imageuploader_" + this.parent.id,
50+
this.config.additional_data.uploaderConfig,
51+
this.parent.id,
52+
this.parent.dataStore,
53+
(initialImageValue as object[]),
54+
);
4955
}
5056

5157
/**
@@ -216,20 +222,6 @@ export default class Preview extends BasePreview {
216222
const imageObject = dataStore[this.config.additional_data.uploaderConfig.dataScope][0] || {};
217223
events.trigger(`image:${this.parent.id}:assignAfter`, imageObject);
218224
});
219-
220-
events.on(`${this.config.name}:mountAfter`, () => {
221-
const dataStore = this.parent.dataStore.get() as DataObject;
222-
const initialImageValue = dataStore[this.config.additional_data.uploaderConfig.dataScope] || "";
223-
224-
// Create uploader
225-
this.uploader = new Uploader(
226-
"imageuploader_" + this.parent.id,
227-
this.config.additional_data.uploaderConfig,
228-
this.parent.id,
229-
this.parent.dataStore,
230-
(initialImageValue as object[]),
231-
);
232-
});
233225
}
234226

235227
/**

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

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,23 @@ import Uploader from "../uploader";
1414
* @api
1515
*/
1616
export default class Preview extends BasePreview {
17-
/**
18-
* Uploader instance
19-
*/
20-
private uploader: Uploader;
2117

2218
/**
2319
* Get registry callback reference to uploader UI component
2420
*
2521
* @returns {Uploader}
2622
*/
2723
public getUploader() {
28-
return this.uploader;
24+
const dataStore = this.parent.dataStore.get() as DataObject;
25+
const initialImageValue = dataStore[this.config.additional_data.uploaderConfig.dataScope] || "";
26+
27+
return new Uploader(
28+
"imageuploader_" + this.parent.id,
29+
this.config.additional_data.uploaderConfig,
30+
this.parent.id,
31+
this.parent.dataStore,
32+
(initialImageValue as object[]),
33+
);
2934
}
3035

3136
/**
@@ -40,19 +45,5 @@ export default class Preview extends BasePreview {
4045
const imageObject: object = files ? (files[0] as object) : {};
4146
events.trigger(`image:${this.parent.id}:assignAfter`, imageObject);
4247
});
43-
44-
events.on(`${this.config.name}:mountAfter`, () => {
45-
const dataStore = this.parent.dataStore.get() as DataObject;
46-
const initialImageValue = dataStore[this.config.additional_data.uploaderConfig.dataScope] || "";
47-
48-
// Create uploader
49-
this.uploader = new Uploader(
50-
"imageuploader_" + this.parent.id,
51-
this.config.additional_data.uploaderConfig,
52-
this.parent.id,
53-
this.parent.dataStore,
54-
(initialImageValue as object[]),
55-
);
56-
});
5748
}
5849
}

0 commit comments

Comments
 (0)