Revert "MainMenu no longer manages classes on the body tag"

This reverts commit 354de09fa7.

When tapping notifications, both main and notification
menus are shown.

Change-Id: Iaa3ca4d2c7eadb1c9888b514d08895c658336d10
This commit is contained in:
Niedzielski 2019-08-07 23:43:43 +00:00
parent 354de09fa7
commit 6241c8dad7
2 changed files with 18 additions and 49 deletions

View File

@ -1,29 +1,6 @@
var MainMenu = require( './menu/MainMenu.js' ),
util = mw.mobileFrontend.require( 'mobile.startup' ).util,
mainMenu = createMainMenu();
/**
* Update body tag with appropriate classes for a closed drawer.
*/
function onClose() {
$( document.body ).removeClass(
[ 'navigation-enabled', 'secondary-navigation-enabled',
'primary-navigation-enabled' ].join( ' ' )
);
}
/**
* Update body tag with appropriate classes for an open drawer.
* @param {string} drawerType A name that identifies the navigation drawer that
* should be opened. Either primary or secondary.
*/
function onOpen( drawerType ) {
// FIXME: We should be moving away from applying classes to the body
$( document.body ).addClass(
[ 'navigation-enabled', drawerType + '-navigation-enabled' ].join( ' ' )
);
}
/**
* Creates an instance of the `MainMenu`, using the `wgMinervaMenuData` for configuration.
*
@ -39,14 +16,7 @@ function createMainMenu() {
options.activator = '.header .main-menu-button';
return new MainMenu(
util.extend( options, {
onClose: onClose,
onOpen: function () {
onOpen( 'primary' );
}
} )
);
return new MainMenu( options );
}
$( function () {

View File

@ -3,7 +3,6 @@
mobile = M.require( 'mobile.startup' ),
mfExtend = mobile.mfExtend,
browser = mobile.Browser.getSingleton(),
util = mobile.util,
View = mobile.View;
/**
@ -12,17 +11,10 @@
* @class MainMenu
* @extends View
* @param {Object} options Configuration options
* @param {Function} options.onOpen executed when the menu opens
* @param {Function} options.onClose executed when the menu closes
*/
function MainMenu( options ) {
this.activator = options.activator;
View.call( this,
util.extend( {
onOpen: function () {},
onClose: function () {}
}, options )
);
View.call( this, options );
}
mfExtend( MainMenu, View, {
@ -83,34 +75,41 @@
* @memberof MainMenu
* @instance
* @return {boolean}
* @private
*/
isOpen: function () {
return this.$el.hasClass( 'menu--open' );
// FIXME: We should be moving away from applying classes to the body
return $( document.body ).hasClass( 'navigation-enabled' );
},
/**
* Close all open navigation drawers
* @memberof MainMenu
* @instance
* @private
*/
closeNavigationDrawers: function () {
this.$el.removeClass( 'menu--open' );
this.options.onClose();
// FIXME: We should be moving away from applying classes to the body
$( document.body ).removeClass( 'navigation-enabled' )
.removeClass( 'secondary-navigation-enabled' )
.removeClass( 'primary-navigation-enabled' );
},
/**
* Toggle open navigation drawer
* @param {string} [drawerType] A name that identifies the navigation drawer that
* should be toggled open. Defaults to 'primary'.
* @fires MainMenu#open
* @memberof MainMenu
* @instance
* @private
*/
openNavigationDrawer: function () {
openNavigationDrawer: function ( drawerType ) {
// close any existing ones first.
this.closeNavigationDrawers();
this.$el.addClass( 'menu--open' );
this.options.onOpen();
drawerType = drawerType || 'primary';
// FIXME: We should be moving away from applying classes to the body
$( document.body ).toggleClass( 'navigation-enabled' )
.toggleClass( drawerType + '-navigation-enabled' );
this.emit( 'open' );
}
} );