mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue
synced 2024-12-21 01:52:49 +00:00
2be7b9f919
Additional changes: * Update Minerva so that it doesn't output any APIs to the documentation - this is intentional as Minerva does not have any public facing APIs. Bug: T368081 Change-Id: Ie1a3ea30cbf35663c7fdd2494c1698044882969e
48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
const watchstar = require( 'mediawiki.page.watch.ajax' ).watchstar;
|
|
const WATCHED_ICON_CLASS = 'minerva-icon--unStar-progressive';
|
|
const TEMP_WATCHED_ICON_CLASS = 'minerva-icon--halfStar-progressive';
|
|
const UNWATCHED_ICON_CLASS = 'minerva-icon--star-base20';
|
|
|
|
/**
|
|
* Tweaks the global watchstar handler in core to use the correct classes for Minerva.
|
|
*
|
|
* @param {jQuery} $icon
|
|
* @ignore
|
|
*/
|
|
function init( $icon ) {
|
|
const $watchlink = $icon.find( 'a' );
|
|
watchstar( $watchlink, mw.config.get( 'wgRelevantPageName' ), toggleClasses );
|
|
}
|
|
|
|
/**
|
|
* @param {jQuery} $link
|
|
* @param {boolean} isWatched
|
|
* @param {string} expiry
|
|
* @private
|
|
*/
|
|
function toggleClasses( $link, isWatched, expiry ) {
|
|
const $icon = $link.find( '.minerva-icon' );
|
|
$icon.removeClass( [ WATCHED_ICON_CLASS, UNWATCHED_ICON_CLASS, TEMP_WATCHED_ICON_CLASS ] )
|
|
.addClass( () => {
|
|
let classes = UNWATCHED_ICON_CLASS;
|
|
if ( isWatched ) {
|
|
if ( expiry !== null && expiry !== undefined && expiry !== 'infinity' ) {
|
|
classes = TEMP_WATCHED_ICON_CLASS;
|
|
} else {
|
|
classes = WATCHED_ICON_CLASS;
|
|
}
|
|
}
|
|
return classes;
|
|
} );
|
|
}
|
|
|
|
module.exports = {
|
|
init: init,
|
|
test: {
|
|
toggleClasses,
|
|
TEMP_WATCHED_ICON_CLASS,
|
|
WATCHED_ICON_CLASS,
|
|
UNWATCHED_ICON_CLASS
|
|
}
|
|
};
|