User:Nardog/dark-mode-toggle.js: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Line 21:
'es6-polyfills', 'oojs-ui.styles.icons-accessibility'
])).then(function () {
var isOnstate = !!mw.userloader.options.getgetState('ext.gadget-.dark-mode');
if (!state) return;
var isOn = state !== 'registered';
 
if (isOn) {
Line 33 ⟶ 35:
}
 
function getMsg(suffix) {
var onOrOff = isOn ? 'off' : 'on';
var labelkey = mw.msg('darkmode-turn-' + onOrOff['off', 'on'][Number(isOn)] + '-label') + suffix;
return mw.msg(key);
var tooltip = mw.msg('darkmode-turn-' + onOrOff + '-tooltip');
}
 
var label = getMsg('label');
var tooltip = mw.msggetMsg('darkmode-turn-' + onOrOff + '-tooltip');
var nextnode = mw.config.get('skin') !== 'minerva' && '#pt-watchlist';
var portletLink = mw.util.addPortletLink('p-personal', '#', label, 'pt-darkmode', tooltip, '', nextnode);
 
function toggleMode() {
isOn = !isOn;
var newState = Number(!mw.user.options.get('gadget-dark-mode'));
var newState = Number(isOn);
new mw.Api().saveOption('gadget-dark-mode', newState);
mw.user$(document.optionsdocumentElement).settoggleClass('gadgetclient-dark-mode', newStateisOn);
$('meta[name="theme-color"]').attr('content', newStateisOn ? '#000' : '#eaecf0');
$(document.documentElement).toggleClass('client-dark-mode', !!newState);
$('meta[name="theme-color"]').attr('content', newState ? '#000' : '#eaecf0');
mw.storage.session.set('dark-mode-toggled', newState);
 
// Toggle portlet link label and tooltip
var onOrOff = ['on', 'off'][newState];
$('#pt-darkmode, #pt-darkmode *').contents().each(function () {
// If it's a text node and has more than just whitespace
if (this.nodeType === 3 && /\S/.test(this.textContent)) {
this.textContent = mw.msggetMsg('darkmode-turn-' + onOrOff + '-label');
return false; // break
}
});
$('#pt-darkmode a').attr('title', mw.msggetMsg('darkmode-turn-' + onOrOff + '-tooltip'));
 
// Swap classes
Line 67 ⟶ 72:
if (gadgetsLinkElement) {
var uri = new mw.Uri(gadgetsLinkElement.href);
if (newStateisOn) {
uri.query.modules += ',dark-mode';
} else {