fix(mobile): menu hiding when collapsing submenu

This commit is contained in:
Elian Doran 2024-12-28 10:04:53 +02:00
parent 01322c50ec
commit 08ad954e9c
No known key found for this signature in database

View File

@ -48,6 +48,7 @@ class ContextMenu {
return; return;
} }
console.log("Hide from ", e.target);
this.hide(); this.hide();
}); });
} }
@ -168,10 +169,13 @@ class ContextMenu {
} }
if (this.isMobile && "items" in item && item.items) { if (this.isMobile && "items" in item && item.items) {
// We run using a timeout to avoid the layout change during event handling, which would trigger the menu to be hidden sometimes.
setTimeout(() => {
$(e.target) $(e.target)
.closest(".dropdown-item") .closest(".dropdown-item")
.find("ul.dropdown-menu") .find("ul.dropdown-menu")
.toggleClass("show"); .toggleClass("show");
}, 0);
e.preventDefault(); e.preventDefault();
return false; return false;
} }
@ -213,6 +217,7 @@ class ContextMenu {
// this date checking comes from change in FF66 - https://github.com/zadam/trilium/issues/468 // this date checking comes from change in FF66 - https://github.com/zadam/trilium/issues/468
// "contextmenu" event also triggers "click" event which depending on the timing can close the just opened context menu // "contextmenu" event also triggers "click" event which depending on the timing can close the just opened context menu
// we might filter out right clicks, but then it's better if even right clicks close the context menu // we might filter out right clicks, but then it's better if even right clicks close the context menu
console.warn(new Error());
if (Date.now() - this.dateContextMenuOpenedMs > 300) { if (Date.now() - this.dateContextMenuOpenedMs > 300) {
// seems like if we hide the menu immediately, some clicks can get propagated to the underlying component // seems like if we hide the menu immediately, some clicks can get propagated to the underlying component
// see https://github.com/zadam/trilium/pull/3805 for details // see https://github.com/zadam/trilium/pull/3805 for details