diff --git a/static/js/components/ContextMenu/GlobalContextMenu.js b/static/js/components/ContextMenu/GlobalContextMenu.js index 75e4806b..26fb8eb3 100644 --- a/static/js/components/ContextMenu/GlobalContextMenu.js +++ b/static/js/components/ContextMenu/GlobalContextMenu.js @@ -54,9 +54,25 @@ export class GlobalContextMenu extends BaseContextMenu { rematchRecipesItem?.classList.add('hidden'); } + this._updateSeparatorVisibility(); + super.showMenu(x, y, contextOrigin); } + _updateSeparatorVisibility() { + const children = Array.from(this.menu.children); + const isVisible = (el) => el.classList.contains('context-menu-item') && !el.classList.contains('hidden'); + + children.forEach((el, index) => { + if (!el.classList.contains('context-menu-separator')) { + return; + } + const hasVisibleBefore = children.slice(0, index).some(isVisible); + const hasVisibleAfter = children.slice(index + 1).some(isVisible); + el.classList.toggle('hidden', !(hasVisibleBefore && hasVisibleAfter)); + }); + } + handleMenuAction(action, menuItem) { switch (action) { case 'cleanup-example-images-folders':