MediaWiki:Common.js: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Tag: Reverted
Line 994:
filterRows();
});
});
 
/* -------------------------------------------------------------------------
* TUFLOW Wiki dark mode toggle
* ------------------------------------------------------------------------- */
 
mw.hook('wikipage.content').add(function () {
'use strict';
 
if (document.getElementById('tuflow-dark-mode-toggle')) {
return;
}
 
var button = document.createElement('button');
 
button.id = 'tuflow-dark-mode-toggle';
button.type = 'button';
button.textContent = '☾ Dark mode';
button.setAttribute('aria-pressed', 'false');
button.setAttribute('aria-label', 'Turn on dark mode');
 
button.addEventListener('click', function () {
var darkModeEnabled =
document.documentElement.classList.toggle(
'tuflow-dark-mode'
);
 
button.textContent = darkModeEnabled
? '☀ Light mode'
: '☾ Dark mode';
 
button.setAttribute(
'aria-pressed',
darkModeEnabled ? 'true' : 'false'
);
 
button.setAttribute(
'aria-label',
darkModeEnabled
? 'Turn off dark mode'
: 'Turn on dark mode'
);
 
localStorage.setItem(
'tuflowDarkMode',
darkModeEnabled ? 'dark' : 'light'
);
});
 
var savedMode = localStorage.getItem('tuflowDarkMode');
 
if (savedMode === 'dark') {
document.documentElement.classList.add(
'tuflow-dark-mode'
);
 
button.textContent = '☀ Light mode';
button.setAttribute('aria-pressed', 'true');
button.setAttribute(
'aria-label',
'Turn off dark mode'
);
}
 
var target =
document.querySelector('#p-personal ul') ||
document.querySelector('.vector-user-links') ||
document.querySelector('#mw-head');
 
if (target) {
var wrapper = document.createElement('div');
 
wrapper.id = 'tuflow-dark-mode-toggle-wrapper';
wrapper.appendChild(button);
target.appendChild(wrapper);
}
});