var MenuItem;
/**
* wp.media.view.MenuItem
*
* @memberOf wp.media.view
*
* @class
* @augments wp.media.View
* @augments wp.Backbone.View
* @augments Backbone.View
*/
MenuItem = wp.media.View.extend(/** @lends wp.media.view.MenuItem.prototype */{
tagName: 'button',
className: 'media-menu-item',
attributes: {
type: 'button',
role: 'tab'
},
events: {
'click': '_click'
},
/**
* Allows to override the click event.
*/
_click: function() {
var clickOverride = this.options.click;
if ( clickOverride ) {
clickOverride.call( this );
} else {
this.click();
}
},
click: function() {
var state = this.options.state;
if ( state ) {
this.controller.setState( state );
// Toggle the menu visibility in the responsive view.
this.views.parent.$el.removeClass( 'visible' ); // @todo Or hide on any click, see below.
}
},
/**
* @return {wp.media.view.MenuItem} returns itself to allow chaining.
*/
render: function() {
var options = this.options,
menuProperty = options.state || options.contentMode;
if ( options.text ) {
this.$el.text( options.text );
} else if ( options.html ) {
this.$el.html( options.html );
}
// Set the menu item ID based on the frame state associated to the menu item.
this.$el.attr( 'id', 'menu-item-' + menuProperty );
return this;
}
});
module.exports = MenuItem;