Skip to content

Commit 8f1a32e

Browse files
committed
MC-4093: Couldn't hide buttons group when appearance is set as Stacked
- Add required display entries to stack buttons content type
1 parent 9cdfe8a commit 8f1a32e

File tree

8 files changed

+218
-6
lines changed

8 files changed

+218
-6
lines changed

app/code/Magento/PageBuilder/view/adminhtml/pagebuilder/content_type/buttons.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<style name="border_color" source="border_color"/>
3333
<style name="border_width" source="border_width" converter="Magento_PageBuilder/js/converter/style/border-width"/>
3434
<style name="border_radius" source="border_radius" converter="Magento_PageBuilder/js/converter/style/remove-px"/>
35-
<style name="display" source="display" converter="Magento_PageBuilder/js/content-type/buttons/converter/style/display" preview_converter="Magento_PageBuilder/js/converter/style/preview/display"/>
35+
<style name="display" source="display" converter="Magento_PageBuilder/js/content-type/buttons/converter/style/display/inline-block" preview_converter="Magento_PageBuilder/js/converter/style/preview/display"/>
3636
<style name="margins" storage_key="margins_and_padding" reader="Magento_PageBuilder/js/property/margins" converter="Magento_PageBuilder/js/converter/style/margins"/>
3737
<style name="padding" storage_key="margins_and_padding" reader="Magento_PageBuilder/js/property/paddings" converter="Magento_PageBuilder/js/converter/style/paddings"/>
3838
<attribute name="name" source="data-role"/>
@@ -53,7 +53,7 @@
5353
<style name="border_color" source="border_color"/>
5454
<style name="border_width" source="border_width" converter="Magento_PageBuilder/js/converter/style/border-width"/>
5555
<style name="border_radius" source="border_radius" converter="Magento_PageBuilder/js/converter/style/remove-px"/>
56-
<static_style source="display" value="flex"/>
56+
<style name="display" source="display" converter="Magento_PageBuilder/js/content-type/buttons/converter/style/display/flex" preview_converter="Magento_PageBuilder/js/content-type/buttons/converter/style/preview/display/flex"/>
5757
<static_style source="flex_direction" value="column"/>
5858
<style name="margins" storage_key="margins_and_padding" reader="Magento_PageBuilder/js/property/margins" converter="Magento_PageBuilder/js/converter/style/margins"/>
5959
<style name="padding" storage_key="margins_and_padding" reader="Magento_PageBuilder/js/property/paddings" converter="Magento_PageBuilder/js/converter/style/paddings"/>

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/buttons/converter/style/display/flex.js

Lines changed: 49 additions & 0 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/buttons/converter/style/display/inline-block.js

Lines changed: 49 additions & 0 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/buttons/converter/style/preview/display/flex.js

Lines changed: 45 additions & 0 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.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.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
import ConverterInterface from "../../../../../converter/converter-interface";
7+
import {DataObject} from "../../../../../data-store";
8+
9+
/**
10+
* @api
11+
*/
12+
export default class Flex implements ConverterInterface {
13+
/**
14+
* Convert value to internal format
15+
*
16+
* @param value string
17+
* @returns {string | object}
18+
*/
19+
public fromDom(value: string): boolean {
20+
return !(value === "none");
21+
}
22+
23+
/**
24+
* Convert value to knockout format, if buttons are displayed they should be inline block
25+
*
26+
* @param {string} name
27+
* @param {DataObject} data
28+
* @returns {string}
29+
*/
30+
public toDom(name: string, data: DataObject): string {
31+
if (typeof data[name] !== "undefined" && data[name] === false) {
32+
return "none";
33+
}
34+
return "flex";
35+
}
36+
}

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/buttons/converter/style/display.ts renamed to app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/buttons/converter/style/display/inline-block.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
* See COPYING.txt for license details.
44
*/
55

6-
import ConverterInterface from "../../../../converter/converter-interface";
7-
import {DataObject} from "../../../../data-store";
6+
import ConverterInterface from "../../../../../converter/converter-interface";
7+
import {DataObject} from "../../../../../data-store";
88

99
/**
1010
* @api
1111
*/
12-
export default class Display implements ConverterInterface {
12+
export default class InlineBlock implements ConverterInterface {
1313
/**
1414
* Convert value to internal format
1515
*
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
import ConverterInterface from "../../../../../../converter/converter-interface";
7+
import {DataObject} from "../../../../../../data-store";
8+
9+
/**
10+
* @api
11+
*/
12+
export default class Display implements ConverterInterface {
13+
/**
14+
* Ensure the display none property doesn't persist to the preview
15+
*
16+
* @param value string
17+
* @returns {string | object}
18+
*/
19+
public fromDom(value: string): string | object {
20+
return;
21+
}
22+
23+
/**
24+
* Ensure the display none property doesn't persist to the preview
25+
*
26+
* @param name string
27+
* @param data Object
28+
* @returns {string}
29+
*/
30+
public toDom(name: string, data: DataObject): string {
31+
return "flex";
32+
}
33+
}

0 commit comments

Comments
 (0)