Skip to content

Commit

Permalink
Fix menu can stay open when parent menu closes
Browse files Browse the repository at this point in the history
  • Loading branch information
ridemountainpig committed Feb 10, 2025
1 parent 72d2b7b commit 2be0a08
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions src/main/js/components/dropdowns/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,26 @@ function generateDropdown(element, callback, immediate) {
tippy(
element,
Object.assign({}, Templates.dropdown(), {
hideOnClick: element.dataset["hideOnClick"] !== "false",
hideOnClick: false,
onCreate(instance) {
const onload = () => {
if (instance.loaded) {
return;
}

instance.popper.addEventListener("click", () => {
instance.hide();
document.addEventListener("click", (event) => {
const visibleDropdowns = Array.from(document.querySelectorAll('[data-tippy-root]'))
.filter(dropdown => window.getComputedStyle(dropdown).visibility === 'visible');

const isClickInAnyDropdown = visibleDropdowns.some(dropdown =>
dropdown.contains(event.target)
);

const isClickOnReference = instance.reference.contains(event.target);

if (!isClickInAnyDropdown && !isClickOnReference) {
instance.hide();
}
});

callback(instance);
Expand Down

0 comments on commit 2be0a08

Please sign in to comment.