Skip to content

Commit 4382868

Browse files
committed
MC-4126: Duplicate row border after switching Row appearance
- Ensure we unset any styles within observer updater before applying new styles from new appearance
1 parent 219b383 commit 4382868

File tree

2 files changed

+43
-5
lines changed

2 files changed

+43
-5
lines changed

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

Lines changed: 22 additions & 3 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/observable-updater.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,27 @@ export default class ObservableUpdater {
6363
}
6464

6565
if (config[elementName].style !== undefined) {
66-
viewModel.data[elementName].style(this.convertStyle(config[elementName], data));
66+
const currentStyles = viewModel.data[elementName].style();
67+
let newStyles = this.convertStyle(config[elementName], data);
68+
69+
if (currentStyles) {
70+
/**
71+
* If so we need to retrieve the previous styles applied to this element and create a new object
72+
* which forces all of these styles to be "false". Knockout doesn't clean existing styles when
73+
* applying new styles to an element. This resolves styles sticking around when they should be
74+
* removed.
75+
*/
76+
const removeCurrentStyles = Object.keys(currentStyles)
77+
.reduce((object: object, styleName: string) => {
78+
return Object.assign(object, {[styleName]: ""});
79+
}, {});
80+
81+
if (!_.isEmpty(removeCurrentStyles)) {
82+
newStyles = _.extend(removeCurrentStyles, newStyles);
83+
}
84+
}
85+
86+
viewModel.data[elementName].style(newStyles);
6787
}
6888

6989
if (config[elementName].attributes !== undefined) {
@@ -101,7 +121,6 @@ export default class ObservableUpdater {
101121
viewModel.data[elementName][config[elementName].tag.var](data[config[elementName].tag.var]);
102122
}
103123
}
104-
console.log(viewModel.data.main.style());
105124
}
106125

107126
/**

0 commit comments

Comments
 (0)