mediawiki-skins-MinervaNeue/resources/skins.minerva.scripts/setup.js
Jon Robson b079031b0a Send a toast notification if night mode is not available
Add a skin-night-mode-page-disabled class to the HTML element when
a page was disabled by the new MinervaNightModeOptions configuration
flag.

Bug: T356653
Change-Id: I7a6582ef8f66e78cc6f07da06bc4d2a3277cfcf0
2024-02-14 01:51:23 +00:00

53 lines
1.6 KiB
JavaScript

/**
* This setups the Minerva skin.
* It should run without errors even if MobileFrontend is not installed.
*/
var ms = require( 'mobile.startup' ),
reportIfNightModeWasDisabledOnPage = require( './reportIfNightModeWasDisabledOnPage.js' ),
addPortletLink = require( './addPortletLink.js' ),
teleportTarget = require( 'mediawiki.page.ready' ).teleportTarget;
function init() {
var permissions = mw.config.get( 'wgMinervaPermissions' ) || {},
// eslint-disable-next-line no-jquery/no-global-selector
$watch = $( '#page-actions-watch' );
if ( permissions.watch ) {
require( './watchstar.js' ).init( $watch );
}
addPortletLink.init();
mw.hook( 'util.addPortletLink' ).add(
addPortletLink.hookHandler
);
// Setup Minerva with MobileFrontend
if ( ms && !ms.stub ) {
require( './initMobile.js' )();
} else {
// MOBILEFRONTEND IS NOT INSTALLED.
// setup search for desktop Minerva at mobile resolution without MobileFrontend.
require( './searchSuggestReveal.js' )();
}
// This hot fix should be reviewed and possibly removed circa January 2021.
// It's assumed that Apple will prioritize fixing this bug in one of its next releases.
// See T264376.
if ( navigator.userAgent.match( /OS 14_[0-9]/ ) ) {
document.body.classList.add( 'hotfix-T264376' );
}
// Apply content styles to teleported elements
teleportTarget.classList.add( 'content' );
reportIfNightModeWasDisabledOnPage(
document.documentElement, mw.user.options, mw.user.isNamed()
);
}
init();
module.exports = {
// Version number allows breaking changes to be detected by other extensions
VERSION: 1
};