Skip to content

Commit 11118a3

Browse files
committed
PB-341: Save content as template
- Improve jumps when taking screenshot
1 parent 0eaf037 commit 11118a3

File tree

4 files changed

+67
-36
lines changed

4 files changed

+67
-36
lines changed

app/code/Magento/PageBuilder/view/adminhtml/web/css/source/_page-builder.less

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,11 +212,11 @@
212212
}
213213

214214
.pagebuilder-canvas {
215-
-moz-transition: opacity .75s ease-in-out, visibility .75s ease-in-out, padding-top .35s ease-in-out;
216-
-webkit-transition: opacity .75s ease-in-out, visibility .75s ease-in-out, padding-top .35s ease-in-out;
215+
-moz-transition: opacity .75s ease-in-out, visibility .75s ease-in-out;
216+
-webkit-transition: opacity .75s ease-in-out, visibility .75s ease-in-out;
217217
opacity: 0;
218218
padding-bottom: 120px;
219-
transition: opacity .75s ease-in-out, visibility .75s ease-in-out, padding-top .35s ease-in-out;
219+
transition: opacity .75s ease-in-out, visibility .75s ease-in-out;
220220
visibility: hidden;
221221

222222
&.active {

app/code/Magento/PageBuilder/view/adminhtml/web/css/source/_template-manager.less

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
// ______________________________________________________________________
1010

1111
.pagebuilder-stage.capture .pagebuilder-canvas {
12+
margin: -10px;
1213
padding: 10px;
14+
transition: none;
1315

1416
.pagebuilder-content-type {
1517
border: 0 !important;
@@ -42,6 +44,11 @@
4244
}
4345
}
4446

47+
.pagebuilder-stage-wrapper.stage-full-screen .pagebuilder-stage.capture .pagebuilder-canvas {
48+
margin-top: 20px;
49+
padding-top: 10px;
50+
}
51+
4552
//
4653
// Style modal and grid slide out panel
4754
// ______________________________________________________________________

app/code/Magento/PageBuilder/view/adminhtml/web/js/template-manager.js

Lines changed: 28 additions & 14 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/template-manager.ts

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -126,37 +126,47 @@ function refreshGrid() {
126126
* @param stage
127127
*/
128128
function createCapture(stage: Stage) {
129-
const stageElement = document.querySelector("#" + stage.id);
130129
const scrollY = window.scrollY;
130+
const stageElement = document.querySelector("#" + stage.id) as HTMLElement;
131131
const deferred = $.Deferred();
132132

133133
// Resolve issues with Parallax
134134
const parallaxRestore = disableParallax(stageElement);
135135

136+
stageElement.style.height = $(stageElement).outerHeight(false) + "px";
136137
stageElement.classList.add("capture");
137138
stageElement.classList.add("interacting");
138-
window.scrollTo({
139-
top: 0,
140-
});
141-
142-
html2canvas(
143-
document.querySelector("#" + stage.id + " .pagebuilder-canvas"),
144-
{
145-
scale: 1,
146-
useCORS: true,
147-
},
148-
).then((canvas: HTMLCanvasElement) => {
149-
const imageSrc = canvas.toDataURL("image/jpeg", 0.85);
150-
151-
deferred.resolve(imageSrc);
152139

140+
if (stage.pageBuilder.isFullScreen()) {
153141
window.scrollTo({
154-
top: scrollY,
142+
top: 0,
155143
});
144+
}
156145

157-
stageElement.classList.remove("capture");
158-
stageElement.classList.remove("interacting");
159-
restoreParallax(parallaxRestore);
146+
_.defer(() => {
147+
html2canvas(
148+
document.querySelector("#" + stage.id + " .pagebuilder-canvas"),
149+
{
150+
scale: 1,
151+
useCORS: true,
152+
scrollY: (window.pageYOffset * -1),
153+
},
154+
).then((canvas: HTMLCanvasElement) => {
155+
const imageSrc = canvas.toDataURL("image/jpeg", 0.85);
156+
157+
deferred.resolve(imageSrc);
158+
159+
if (stage.pageBuilder.isFullScreen()) {
160+
window.scrollTo({
161+
top: scrollY,
162+
});
163+
}
164+
165+
stageElement.style.height = null;
166+
stageElement.classList.remove("capture");
167+
stageElement.classList.remove("interacting");
168+
restoreParallax(parallaxRestore);
169+
});
160170
});
161171

162172
return deferred;

0 commit comments

Comments
 (0)