From c8be1521d8cecd484799d55d8937ba4b3c9ee307 Mon Sep 17 00:00:00 2001 From: Sukhendu Sekhar Guria Date: Mon, 8 Jun 2026 16:24:40 +0530 Subject: [PATCH] Media: Hide single-item media menus --- src/js/media/controllers/state.js | 11 +++++------ src/js/media/views/menu.js | 7 ++++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/js/media/controllers/state.js b/src/js/media/controllers/state.js index bbc9b3826b2e7..107009f8e46c6 100644 --- a/src/js/media/controllers/state.js +++ b/src/js/media/controllers/state.js @@ -165,15 +165,10 @@ var State = Backbone.Model.extend(/** @lends wp.media.controller.State.prototype _menu: function() { var menu = this.frame.menu, mode = this.get('menu'), - actionMenuItems, - actionMenuLength, view; if ( this.frame.menu ) { - actionMenuItems = this.frame.menu.get('views'), - actionMenuLength = actionMenuItems ? actionMenuItems.views.get().length : 0, - // Show action menu only if it is active and has more than one default element. - this.frame.$el.toggleClass( 'hide-menu', ! mode || actionMenuLength < 2 ); + this.frame.$el.toggleClass( 'hide-menu', ! mode ); } if ( ! mode ) { return; @@ -182,6 +177,10 @@ var State = Backbone.Model.extend(/** @lends wp.media.controller.State.prototype menu.mode( mode ); view = menu.get(); + if ( view && view.visibility ) { + view.visibility(); + } + if ( view && view.select ) { view.select( this.id ); } diff --git a/src/js/media/views/menu.js b/src/js/media/views/menu.js index cf967c83bb4f6..025287e72cc33 100644 --- a/src/js/media/views/menu.js +++ b/src/js/media/views/menu.js @@ -87,7 +87,10 @@ Menu = PriorityList.extend(/** @lends wp.media.view.Menu.prototype */{ var region = this.region, view = this.controller[ region ].get(), views = this.views.get(), - hide = ! views || views.length < 2; + visibleMenuItems = views ? _.filter( views, function( item ) { + return ! item.$el.hasClass( 'separator' ) && ! item.$el.hasClass( 'hidden' ); + }) : [], + hide = visibleMenuItems.length < 2; if ( this === view ) { // Flag this menu as hidden or visible. @@ -125,6 +128,7 @@ Menu = PriorityList.extend(/** @lends wp.media.view.Menu.prototype */{ } view.$el.addClass('hidden'); + this.visibility(); }, show: function( id ) { @@ -135,6 +139,7 @@ Menu = PriorityList.extend(/** @lends wp.media.view.Menu.prototype */{ } view.$el.removeClass('hidden'); + this.visibility(); } });