Site Notice

Remember to pay a visit to our Discord server and chat with our community! See here for more info.

Be sure to check out the KHUX Wiki for the latest on Kingdom Hearts Union χ and Kingdom Hearts Dark Road! Go and pitch in!

The KHWiki contains spoilers for all Kingdom Hearts games. Read at your own risk.

Please remember not to add information about unreleased games from trailers.

MediaWiki:Gadget-DarkToggle.js: Difference between revisions

From the Kingdom Hearts Wiki, the Kingdom Hearts encyclopedia
Jump to navigationJump to search
mNo edit summary
mNo edit summary
Line 1: Line 1:
// Toggle a dark theme for supported skins
// Toggle a dark theme for supported skins
// NIWA wikis


function setCookie(c_name, value, expiredays) {
function setCookie(c_name, value, expiredays) {
Line 21: Line 20:


$(function() {
$(function() {
if (mw.user.options.get('gadget-DarkMode'))
return;
if (!getCookie('darkTheme')) {
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
$('body').addClass('dark');
$('body').removeClass('light');
}
window.matchMedia('(prefers-color-scheme: dark)').addListener(function(e) {
if (e.matches) {
$('body').addClass('dark');
$('body').removeClass('light');
} else {
$('body').removeClass('dark');
$('body').addClass('light');
}
});
}
var isDark = false;
var isDark = false;
var toggleText = 'Dark mode';
var toggleText = 'Dark mode';
if (getCookie('darkTheme') == 'on') {
if (getCookie('darkTheme') == 'on' || !getCookie('darkTheme') && window.matchMedia('(prefers-color-scheme: dark)').matches) {
toggleText = 'Light mode';
toggleText = 'Light mode';
isDark = true;
isDark = true;
}
}


var footerList = $(':is(#f-list, #footer-places)');
if (mw.config.get('skin') == 'nimbus') {
if (mw.user.options.get('gadget-AutoDarkMode') || mw.user.options.get('gadget-DarkMode'))
$('#wiki-login').prepend('<div id="toggleContainer" style="float:left"><a id="toggleLink" href="javascript:;" title="Toggle night theme"><img id="toggleImage" src="https://wiki.gallery/images/dark/moon/' + (isDark ? 'yellow' : 'white') + '.png"/></a></div>');
return;
} else if (mw.config.get('skin') == 'minerva')
if (mw.config.get('skin') == 'minerva')
$('#footer-places').after('<ul id="toggleContainer" class="minerva-toggle hlist"><li><a id="toggleLink" 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' || mw.config.get('skin') == 'vector-2022')
else
$('#footer-places').append('<li id="toggleContainer"><a id="toggleLink" href="javascript:;">' + toggleText + '</a></li>');
footerList.append('<li id="toggleContainer"><a id="themeToggle" href="javascript:;">' + toggleText + '</a></li>');
else {
$('#p-personal ul').prepend('<li id="toggleContainer" class="mw-list-item"><a id="toggleLink" style="background:none" href="javascript:;" title="Toggle night theme"><img id="toggleImage" src="https://wiki.gallery/images/dark/moon/' + (isDark ? 'yellow' : 'white') + '.png"/></a></li>');
}


$('#themeToggle').click(function() {
$('#toggleLink').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();

Revision as of 06:20, 5 March 2025

// Toggle a dark theme for supported skins

function setCookie(c_name, value, expiredays) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = c_name + '=' + escape(value) + ';path=/' + ((expiredays === null) ? '' : ';expires=' + exdate.toGMTString());
}
function getCookie(c_name) {
	if (document.cookie.length > 0) {
		c_start = document.cookie.indexOf(c_name + '=');
		if (c_start != -1) {
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(';', c_start);
			if (c_end == -1) c_end = document.cookie.length;
			return unescape(document.cookie.substring(c_start, c_end));
		}
	}
	return '';
}

$(function() {
	if (mw.user.options.get('gadget-DarkMode'))
		return;

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

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

	if (mw.config.get('skin') == 'nimbus') {
		$('#wiki-login').prepend('<div id="toggleContainer" style="float:left"><a id="toggleLink" href="javascript:;" title="Toggle night theme"><img id="toggleImage" src="https://wiki.gallery/images/dark/moon/' + (isDark ? 'yellow' : 'white') + '.png"/></a></div>');
	} else if (mw.config.get('skin') == 'minerva')
		$('#footer-places').after('<ul id="toggleContainer" class="minerva-toggle hlist"><li><a id="toggleLink" href="javascript:;">Toggle night theme</a></li></ul>');
	else if (mw.config.get('skin') == 'timeless' || mw.config.get('skin') == 'vector-2022')
		$('#footer-places').append('<li id="toggleContainer"><a id="toggleLink" href="javascript:;">' + toggleText + '</a></li>');
	else {
		$('#p-personal ul').prepend('<li id="toggleContainer" class="mw-list-item"><a id="toggleLink" style="background:none" href="javascript:;" title="Toggle night theme"><img id="toggleImage" src="https://wiki.gallery/images/dark/moon/' + (isDark ? 'yellow' : 'white') + '.png"/></a></li>');
	}

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