Skip to content

Commit 8419965

Browse files
#559: User sees no predefined gutters
- fix rendering issues - fix dataStore data handling - fix event mixins
1 parent 9b37c39 commit 8419965

File tree

12 files changed

+65
-35
lines changed

12 files changed

+65
-35
lines changed

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

Lines changed: 5 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/js/content-type.js

Lines changed: 23 additions & 11 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/preview-collection.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/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/master-format/render/frame.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/ts/js/content-type-factory.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,7 @@ function assignDataToDataStores(
107107
}
108108
contentType.dataStores[name].setState(_.extend({}, defaultData, viewportData));
109109
});
110-
111-
contentType.dataStore.setState(contentType.dataStores[currentViewport].getState());
110+
contentType.setViewportDataToDataStore(currentViewport);
112111
}
113112

114113
/**
@@ -163,7 +162,7 @@ function prepareDefaults(fields: ConfigFieldInterface): FieldDefaultsInterface {
163162
*/
164163
function fireContentTypeReadyEvent(
165164
contentType: ContentTypeInterface | ContentTypeCollectionInterface,
166-
childrenLength: number,
165+
childrenLength: number = 0,
167166
) {
168167
const fire = () => {
169168
const params = {id: contentType.id, contentType, expectChildren: childrenLength};

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

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,25 @@ export default class ContentType<P extends Preview = Preview, M extends Master =
9696
return result;
9797
}
9898

99+
/**
100+
* Set data to dataStore from dataStores base on current viewport.
101+
*
102+
* @param {String} viewport
103+
*/
104+
public setViewportDataToDataStore(viewport: string) {
105+
const defaultViewport = Config.getConfig("defaultViewport");
106+
const currentViewportState = this.dataStores[viewport].getState();
107+
const defaultViewportState = this.dataStores[defaultViewport].getState();
108+
const viewportFields = _.keys(this.getDiffViewportFields(viewport, currentViewportState));
109+
110+
// Filter viewport specific data for states
111+
this.dataStore.setState(_.extend(
112+
{},
113+
defaultViewportState,
114+
_.pick(currentViewportState, viewportFields),
115+
));
116+
}
117+
99118
protected bindEvents() {
100119
const eventName: string = this.config.name + ":" + this.id + ":updateAfter";
101120
const paramObj: any = {};
@@ -106,7 +125,8 @@ export default class ContentType<P extends Preview = Preview, M extends Master =
106125
const viewport = Config.getConfig("viewport") || defaultViewport;
107126

108127
if (viewport !== defaultViewport) {
109-
const viewportFields = _.keys(this.getDiffViewportFields(viewport, state));
128+
const viewportFields = _.keys(this.getViewportFields(viewport, state));
129+
const diffViewportFields = _.keys(this.getDiffViewportFields(viewport, state));
110130
this.dataStores[defaultViewport].setState(
111131
_.extend(
112132
this.dataStores[defaultViewport].getState(),
@@ -116,7 +136,7 @@ export default class ContentType<P extends Preview = Preview, M extends Master =
116136
this.dataStores[viewport].setState(
117137
_.extend(
118138
this.dataStores[viewport].getState(),
119-
_.pick(state, viewportFields),
139+
_.pick(state, diffViewportFields),
120140
),
121141
);
122142
} else {
@@ -144,17 +164,7 @@ export default class ContentType<P extends Preview = Preview, M extends Master =
144164
* @param {Object} args
145165
*/
146166
private onViewportSwitch(args: {viewport: string, previousViewport: string}) {
147-
const defaultViewport = Config.getConfig("defaultViewport");
148-
const currentViewportState = this.dataStores[args.viewport].getState();
149-
const defaultViewportState = this.dataStores[defaultViewport].getState();
150-
const viewportFields = _.keys(this.getDiffViewportFields(args.viewport, currentViewportState));
151-
152-
// Filter viewport specific data for states
153-
this.dataStore.setState(_.extend(
154-
{},
155-
defaultViewportState,
156-
_.pick(currentViewportState, viewportFields),
157-
));
167+
this.setViewportDataToDataStore(args.viewport);
158168
}
159169

160170
/**

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,5 @@ export default interface ContentTypeInterface<P extends Preview = Preview, M ext
3131
*/
3232
getViewportFields(viewport: string, data: DataObject): ConfigFieldInterface;
3333
getDataStoresStates(): {[key: string]: any};
34+
setViewportDataToDataStore(viewport: string): void;
3435
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export default class PreviewCollection extends Preview implements PreviewCollect
3737
): Promise<ContentTypeCollectionInterface> | void {
3838
const defaultViewport = Config.getConfig("defaultViewport");
3939
const index = contentType.parentContentType.getChildren().indexOf(contentType) + 1 || null;
40-
const childrenLength = contentType.children ? contentType.children().length : null;
40+
const childrenLength = contentType.children ? contentType.children().length : 0;
4141

4242
return new Promise((resolve, reject) => {
4343
createContentType(

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ export default class Preview implements PreviewInterface {
343343
contentType.parentContentType,
344344
contentType.stageId,
345345
contentTypeData,
346-
null,
346+
0,
347347
contentType.getDataStoresStates(),
348348
).then((duplicateContentType: ContentTypeInterface) => {
349349
if (autoAppend) {

0 commit comments

Comments
 (0)