Skip to content

Commit e01e4be

Browse files
committed
MC-3571: Implement overlay for MC-1405
Add delegation of hidden state
1 parent 36d807c commit e01e4be

File tree

8 files changed

+45
-41
lines changed

8 files changed

+45
-41
lines changed

app/code/Magento/PageBuilder/view/adminhtml/web/css/source/_icons.less

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@
173173
.icon-pagebuilder-show:before {
174174
content: @icon-pagebuilder-show__content;
175175
}
176-
.icon-pagebuilder-hide:before {
176+
177+
.icon-pagebuilder-hide:before {
177178
content: @icon-pagebuilder-hide__content;
178179
}
179180

app/code/Magento/PageBuilder/view/adminhtml/web/css/source/content-type/block/_default.less

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,6 @@
2121
font-weight: lighter;
2222
}
2323
}
24-
> div:first-child {
25-
&:before {
26-
content: '';
27-
height: 100%;
28-
opacity: .7;
29-
position: absolute;
30-
-moz-transition: background-color 500ms ease;
31-
-o-transition: background-color 500ms ease;
32-
-webkit-transition: background-color 500ms ease;
33-
transition: background-color 500ms ease;
34-
width: 100%;
35-
z-index: 10;
36-
}
37-
38-
&:hover {
39-
&:before {
40-
background-color: @color-gray98;
41-
}
42-
}
43-
}
4424
.rendered-content {
4525
min-height: 50px;
4626
pointer-events: none;

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

Lines changed: 19 additions & 8 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 & 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/template/content-type/block/default/preview.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
<div class="pagebuilder-content-type pagebuilder-block" event="{ mouseover: onMouseOver, mouseout: onMouseOut }, mouseoverBubble: false">
99
<div attr="data.main.attributes" ko-style="data.main.style" css="data.main.css">
10-
<div if="displayPreview" class="rendered-content" html="data.main.html" afterRender="initializeWidgets"></div>
11-
<div ifnot="displayPreview" class="pagebuilder-block-placeholder">
10+
<div if="displayingBlockPreview" class="rendered-content" html="data.main.html" afterRender="initializeWidgets"></div>
11+
<div ifnot="displayingBlockPreview" class="pagebuilder-block-placeholder">
1212
<span class="placeholder-text" text="placeholderText"/>
1313
</div>
1414
</div>

app/code/Magento/PageBuilder/view/adminhtml/web/template/content-type/preview-collection.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<if args="$parent.isContainer()">
1010
<div class="pagebuilder-drop-indicator"></div>
1111
</if>
12-
<div class="pagebuilder-content-type-wrapper" template="{ name: preview.previewTemplate, data: preview, afterRender: function () { preview.dispatchAfterRenderEvent.apply(preview, arguments); } }" attr="{ id: id }"></div>
12+
<div class="pagebuilder-content-type-wrapper" template="{ name: preview.previewTemplate, data: preview, afterRender: function () { preview.dispatchAfterRenderEvent.apply(preview, arguments); } }" attr="{ id: id }" css="{'pagebuilder-content-type-hidden': !preview.display()}"></div>
1313
<if args="$parent.isContainer() && $index() === $parent.parent.getChildren()().length - 1">
1414
<div class="pagebuilder-drop-indicator"></div>
1515
</if>

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

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import BasePreview from "../preview";
2020
* @api
2121
*/
2222
export default class Preview extends BasePreview {
23-
public displayPreview: KnockoutObservable<boolean> = ko.observable(false);
23+
public displayingBlockPreview: KnockoutObservable<boolean> = ko.observable(false);
2424
public loading: KnockoutObservable<boolean> = ko.observable(false);
2525
public placeholderText: KnockoutObservable<string>;
2626
private lastBlockId: number;
@@ -80,17 +80,16 @@ export default class Preview extends BasePreview {
8080
// The mass converter will have transformed the HTML property into a directive
8181
if (this.lastRenderedHtml) {
8282
this.data.main.html(this.lastRenderedHtml);
83-
this.displayPreview(true);
83+
this.showBlockPreview(true);
8484
}
8585
} else {
86-
this.displayPreview(false);
86+
this.showBlockPreview(false);
8787
this.placeholderText("");
8888
}
8989

9090
if (!data.block_id || data.template.length === 0) {
91-
this.displayPreview(false);
91+
this.showBlockPreview(false);
9292
this.placeholderText(this.messages.NOT_SELECTED);
93-
9493
return;
9594
}
9695

@@ -113,7 +112,7 @@ export default class Preview extends BasePreview {
113112
.done((response) => {
114113
// Empty content means something bad happened in the controller that didn't trigger a 5xx
115114
if (typeof response.data !== "object") {
116-
this.displayPreview(false);
115+
this.showBlockPreview(false);
117116
this.placeholderText(this.messages.UNKNOWN_ERROR);
118117

119118
return;
@@ -123,10 +122,10 @@ export default class Preview extends BasePreview {
123122
this.displayLabel(response.data.title ? response.data.title : this.config.label);
124123

125124
if (response.data.content) {
126-
this.displayPreview(true);
125+
this.showBlockPreview(true);
127126
this.data.main.html(response.data.content);
128127
} else if (response.data.error) {
129-
this.displayPreview(false);
128+
this.showBlockPreview(false);
130129
this.placeholderText(response.data.error);
131130
}
132131

@@ -135,11 +134,22 @@ export default class Preview extends BasePreview {
135134
this.lastRenderedHtml = response.data.content;
136135
})
137136
.fail(() => {
138-
this.displayPreview(false);
137+
this.showBlockPreview(false);
139138
this.placeholderText(this.messages.UNKNOWN_ERROR);
140139
})
141140
.always(() => {
142141
this.loading(false);
143142
});
144143
}
144+
145+
/**
146+
* Toggle display of block preview. If showing block preview, add hidden mode to PB preview.
147+
* @param {boolean} isShow
148+
*/
149+
private showBlockPreview(isShow: boolean) {
150+
this.displayingBlockPreview(isShow);
151+
152+
// preview is hidden only if block is shown
153+
this.display(!isShow);
154+
}
145155
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default class Preview {
3939
public data: ObservableObject = {};
4040
public displayLabel: KnockoutObservable<string>;
4141
public wrapperElement: Element;
42+
public display: KnockoutObservable<boolean> = ko.observable(true);
4243

4344
/**
4445
* @deprecated

0 commit comments

Comments
 (0)