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);
}
});
| |||