MediaWiki:Gadget-DarkToggle.js: Difference between revisions

m
no edit summary
mNo edit summary
mNo edit summary
Line 21: Line 21:


$(function() {
$(function() {
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
if (!getCookie('darkTheme')) {
$('body').addClass('dark');
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
$('body').removeClass('light');
}
window.matchMedia('(prefers-color-scheme: dark)').addListener(function(e) {
if (e.matches) {
$('body').addClass('dark');
$('body').addClass('dark');
$('body').removeClass('light');
$('body').removeClass('light');
} else {
$('body').addClass('light');
$('body').removeClass('dark');
}
}
});
window.matchMedia('(prefers-color-scheme: dark)').addListener(function(e) {
if (e.matches) {
$('body').addClass('dark');
$('body').removeClass('light');
} else {
$('body').addClass('light');
$('body').removeClass('dark');
}
});
}


var isDark = false;
var isDark = false;
var toggleText = 'Dark mode';
var toggleText = 'Dark mode';
if (getCookie('darkTheme') == 'on') {
if (getCookie('darkTheme') == 'on' || window.matchMedia('(prefers-color-scheme: dark)').matches && getCookie('darkTheme') != 'off') {
toggleText = 'Light mode';
toggleText = 'Light mode';
isDark = true;
isDark = true;
}
}


var footerList = $('#footer-places');
if (mw.config.get('skin') == 'nimbus')
if (mw.config.get('skin') == 'nimbus')
$('#wiki-login').prepend('<div id="toggleContainer" style="float:left;position:relative;right:5px;cursor:pointer"><img id="themeToggle" src="https://wiki.gallery/images/dark/moon/' + (isDark ? 'yellow' : 'white') + '.png" title="Toggle night theme"/></div>');
$('#wiki-login').prepend('<div id="toggleContainer" style="float:left;position:relative;right:5px;cursor:pointer"><img id="themeToggle" src="https://wiki.gallery/images/dark/moon/' + (isDark ? 'yellow' : 'white') + '.png" title="Toggle night theme"/></div>');
else if (mw.config.get('skin') == 'minerva')
else if (mw.config.get('skin') == 'minerva')
$('#footer-places').after('<ul id="toggleContainer" class="minerva-toggle hlist"><li><a id="themeToggle" href="javascript:;">Toggle night theme</a></li></ul>');
footerList.after('<ul id="toggleContainer" class="minerva-toggle hlist"><li><a id="themeToggle" href="javascript:;">Toggle night theme</a></li></ul>');
else if (mw.config.get('skin') == 'timeless')
else
$('#footer-places').append('<li id="toggleContainer"><a id="themeToggle" href="javascript:;">' + toggleText + '</a></li>');
footerList.append('<li id="toggleContainer"><a id="themeToggle" href="javascript:;">' + toggleText + '</a></li>');


$('#themeToggle').click(function() {
$('#themeToggle').click(function() {
if (isDark)
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
setCookie('darkTheme', '', -1);
if (isDark)
else
setCookie('darkTheme', 'off', 999);
setCookie('darkTheme', 'on', 999);
else
setCookie('darkTheme', '', -1);
} else {
if (isDark)
setCookie('darkTheme', '', -1);
else
setCookie('darkTheme', 'on', 999);
}
 
if (mw.config.get('wgUserId') || location.href.includes('?'))
if (mw.config.get('wgUserId') || location.href.includes('?'))
location.reload();
location.reload();