MediaWiki:Gadget-darkmode.js: Różnice pomiędzy wersjami

Z Minecraft Wiki Polska
Przejdź do nawigacji Przejdź do wyszukiwania
d przetłumaczono opis przycisku
optymalizacja (przeniesienie części funkcjonalności na serwer)
 
Linia 33: Linia 33:
if (isUsingDarkmode === true) {
if (isUsingDarkmode === true) {
  $('body').addClass('wgl-theme-dark');
$('body').addClass('wgl-theme-dark');
  $('body').removeClass('wgl-theme-light');
$('body').removeClass('wgl-theme-light');
mw.loader.load('/index.php?title=MediaWiki:Vector-theme-dark.css&action=raw&ctype=text/css', 'text/css');
} else {
} else {
$('body').addClass('wgl-theme-light');
$('body').addClass('wgl-theme-light');

Aktualna wersja na dzień 21:15, 26 sty 2025

/**
 * Toggle for dark mode
 * 
 * @author [[User:Jayden]]
 * @see Based on https://runescape.wiki/w/MediaWiki:Gadget-skinTogglesNew.js
 */
;(function($, mw){
	var DARK_COOKIE = 'darkmode',
		THEME_COOKIE = 'theme',
		isUsingDarkmode = $.cookie(THEME_COOKIE) === 'dark' || ($.cookie(THEME_COOKIE) == null && $.cookie(DARK_COOKIE) === 'true'),
		portletLink;

	var self = {
		init: function () {
			$.cookie(THEME_COOKIE, isUsingDarkmode ? 'dark' : 'light', {expires: 365, path: '/'});

			portletLink = mw.util.addPortletLink(
				'p-personal',
				'',
				'',
				'pt-dm-toggle',
				'Przełącz tryb ciemny',
				null,
				$('#pt-userpage, #pt-anonuserpage, #pt-createaccount')[0]
			);
			
			$(portletLink).find('a').click(function(e) {
				e.preventDefault();
				
				isUsingDarkmode = !isUsingDarkmode;
				$.cookie(THEME_COOKIE, isUsingDarkmode ? 'dark' : 'light', {expires: 365, path: '/'});
				$.cookie(DARK_COOKIE, isUsingDarkmode, {expires: 365, path: '/'});
				
				if (isUsingDarkmode === true) {
					$('body').addClass('wgl-theme-dark');
					$('body').removeClass('wgl-theme-light');
					mw.loader.load('/index.php?title=MediaWiki:Vector-theme-dark.css&action=raw&ctype=text/css', 'text/css');
				} else {
					$('body').addClass('wgl-theme-light');
					$('body').removeClass('wgl-theme-dark');
				}
			});
		}
	};
	
	$(self.init);

}(jQuery, mediaWiki));