User:MetalManeMc/vector.js: Difference between revisions

From Baldur's Gate 3 Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Tag: Undo
Line 7: Line 7:
  */
  */
;(function($, mw){
;(function($, mw){
var LIGHT_COOKIE = 'lightmode',
var DARK_COOKIE = 'darkmode',
THEME_COOKIE = 'theme',
THEME_COOKIE = 'theme',
isUsingLightmode = $.cookie(THEME_COOKIE) === 'light' || ($.cookie(THEME_COOKIE) == null && $.cookie(LIGHT_COOKIE) === 'true'),
isUsingDarkmode = $.cookie(THEME_COOKIE) === 'dark' || ($.cookie(THEME_COOKIE) == null && $.cookie(DARK_COOKIE) === 'true'),
portletLink;
portletLink;


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


portletLink = mw.util.addPortletLink(
portletLink = mw.util.addPortletLink(
Line 21: Line 21:
'',
'',
'pt-dm-toggle',
'pt-dm-toggle',
'Toggle light mode',
'Toggle dark mode',
null,
null,
$('#pt-userpage, #pt-anonuserpage, #pt-createaccount')[0]
$('#pt-userpage, #pt-anonuserpage, #pt-createaccount')[0]
Line 29: Line 29:
e.preventDefault();
e.preventDefault();
isUsingLightmode = !isUsingLightmode;
isUsingDarkmode = !isUsingDarkmode;
$.cookie(THEME_COOKIE, isUsingLightmode ? 'dark' : 'light', {expires: 365, path: '/'});
$.cookie(THEME_COOKIE, isUsingDarkmode ? 'dark' : 'light', {expires: 365, path: '/'});
$.cookie(LIGHT_COOKIE, isUsingLightmode, {expires: 365, path: '/'});
$.cookie(DARK_COOKIE, isUsingDarkmode, {expires: 365, path: '/'});
if (isUsingLightmode === true) {
if (isUsingDarkmode === true) {
mw.loader.using(['theme-light']).then(function() {
mw.loader.using(['theme-dark-grey']).then(function() {
$('body').addClass('theme-light')
  $('body').addClass('theme-dark-grey')
$('body').removeClass('theme-dark-grey')
  $('body').removeClass('theme-light')
});
});
} else {
} else {
$('body').addClass('theme-dark-grey')
$('body').addClass('theme-light')
$('body').removeClass('theme-light')
$('body').removeClass('theme-dark-grey')
}
}
});
});

Revision as of 18:15, 19 December 2023

/**
 * Toggle for dark mode testing
 * 
 * @author [[User:Jayden]] for https://minecraft.wiki
 * @author [[User:MetalManeMc]] for adaptation on Baldur's Gate 3 Wiki
 * @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',
				'Toggle dark mode',
				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) {
					mw.loader.using(['theme-dark-grey']).then(function() {
					  $('body').addClass('theme-dark-grey')
					  $('body').removeClass('theme-light')
					});
				} else {
					$('body').addClass('theme-light')
					$('body').removeClass('theme-dark-grey')
				}
			});
		}
	}
	
	$(self.init);

}(jQuery, mediaWiki));