Skip to content

Commit 46c4377

Browse files
author
Hwashiang Yu
committed
MC-3709: Safari and firefox button grab handles display on multiple button items
- Updated on click event for button itemt olways clear out all pagebuilder-content-type-active class from stage. - Updated stop event on sortable to remove active class from stage
1 parent 0016f6c commit 46c4377

File tree

5 files changed

+53
-4
lines changed

5 files changed

+53
-4
lines changed

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

Lines changed: 23 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/buttons/preview.js

Lines changed: 2 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/template/content-type/button-item/default/preview.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
-->
77

8-
<div attr="data.main.attributes" ko-style="data.main.style" css="data.main.css" class="pagebuilder-content-type pagebuilder-button-item no-system-border focus-options" event="{ click: onMouseOver, focusout: onMouseOut }">
8+
<div attr="data.main.attributes" ko-style="data.main.style" css="data.main.css" class="pagebuilder-content-type pagebuilder-button-item no-system-border focus-options" event="{ click: onButtonClick, focusout: onMouseOut }">
99
<render args="getOptions().template" />
1010
<a attr="data.link.attributes" ko-style="data.link.style" css="data.link.css">
1111
<span class="button-item-drag-handle" css="{disabled: parent.parent.children().length <= 1}"></span>

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

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

6+
import $ from "jquery";
67
import $t from "mage/translate";
8+
import _ from "underscore";
79
import Option from "../../content-type-menu/option";
810
import OptionInterface from "../../content-type-menu/option.d";
911
import BasePreview from "../preview";
@@ -42,6 +44,29 @@ export default class Preview extends BasePreview {
4244
return newOptions;
4345
}
4446

47+
/**
48+
* Set state based on button click event for the preview
49+
*
50+
* @param {Preview} context
51+
* @param {Event} event
52+
*/
53+
public onButtonClick(context: Preview, event: Event): void {
54+
55+
// Ensure no other options panel and button drag handles are displayed
56+
$(".pagebuilder-content-type-active").removeClass("pagebuilder-content-type-active");
57+
$(".pagebuilder-options-visible").removeClass("pagebuilder-options-visible");
58+
const currentTarget = event.currentTarget;
59+
let optionsMenu = $(currentTarget).find(".pagebuilder-options-wrapper");
60+
61+
if (!$(currentTarget).hasClass("type-nested")) {
62+
optionsMenu = optionsMenu.first();
63+
}
64+
65+
optionsMenu.parent().addClass("pagebuilder-options-visible");
66+
67+
$(currentTarget).addClass("pagebuilder-content-type-active");
68+
}
69+
4570
/**
4671
* Focus out of the element
4772
*/

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,9 @@ export default class Preview extends PreviewCollection {
211211
/**
212212
* Logic for post sorting and removing the placeholderGhost
213213
*/
214-
stop() {
214+
stop(event: Event, element: JQueryUI.SortableUIParams) {
215215
placeholderGhost.remove();
216+
element.item.find(".pagebuilder-content-type-active").removeClass("pagebuilder-content-type-active");
216217
events.trigger("stage:interactionStop");
217218
},
218219
};

0 commit comments

Comments
 (0)