MediaWiki:Common.js: Difference between revisions

Content deleted Content added
No edit summary
Tag: Reverted
No edit summary
Tag: Manual revert
Line 994:
filterRows();
});
});
 
/* -------------------------------------------------------------------------
* TUFLOW Wiki dark mode toggle
* ------------------------------------------------------------------------- */
 
mw.loader.using('mediawiki.util').then(function () {
'use strict';
 
if (document.getElementById('t-tuflow-dark-mode')) {
return;
}
 
var savedMode = localStorage.getItem('tuflowDarkMode');
var darkModeEnabled = savedMode === 'dark';
 
function applyDarkMode(enabled) {
document.documentElement.classList.toggle(
'tuflow-dark-mode',
enabled
);
 
var link = document.querySelector(
'#t-tuflow-dark-mode a'
);
 
if (link) {
link.textContent = enabled
? '☀ Light mode'
: '☾ Dark mode';
 
link.setAttribute(
'aria-label',
enabled
? 'Turn off dark mode'
: 'Turn on dark mode'
);
}
}
 
var toggleLink = mw.util.addPortletLink(
'p-personal',
'#',
darkModeEnabled
? '☀ Light mode'
: '☾ Dark mode',
't-tuflow-dark-mode',
darkModeEnabled
? 'Turn off dark mode'
: 'Turn on dark mode'
);
 
/*
* Fallback location when the personal navigation
* is unavailable in the current skin.
*/
if (!toggleLink) {
toggleLink = mw.util.addPortletLink(
'p-cactions',
'#',
darkModeEnabled
? '☀ Light mode'
: '☾ Dark mode',
't-tuflow-dark-mode',
darkModeEnabled
? 'Turn off dark mode'
: 'Turn on dark mode'
);
}
 
if (!toggleLink) {
return;
}
 
toggleLink.addEventListener('click', function (event) {
event.preventDefault();
 
darkModeEnabled = !document.documentElement.classList.contains(
'tuflow-dark-mode'
);
 
localStorage.setItem(
'tuflowDarkMode',
darkModeEnabled ? 'dark' : 'light'
);
 
applyDarkMode(darkModeEnabled);
});
 
applyDarkMode(darkModeEnabled);
});