MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 1: | Строка 1: | ||
;(function($, mw){ | ;(function($, mw){ | ||
var DARK_COOKIE = 'darkmode', | if (mw.config.get('wgPageName') !== 'Обсуждение_участника:Pok') return; | ||
var DARK_COOKIE = 'darkmode', | |||
THEME_COOKIE = 'theme', | |||
isUsingDarkmode = $.cookie(THEME_COOKIE) === 'dark' | |||
|| ($.cookie(THEME_COOKIE) == null && $.cookie(DARK_COOKIE) === 'true'); | |||
var self = { | |||
init: function () { | |||
$.cookie(THEME_COOKIE, isUsingDarkmode ? 'dark' : 'light', { | |||
expires: 365, | |||
path: '/' | |||
}); | |||
$.cookie(DARK_COOKIE, isUsingDarkmode, { | |||
expires: 365, | |||
path: '/' | |||
}); | |||
var $toggle = $('<div>', { | |||
id: 'pt-dm-toggle', | |||
html: $('<a>', { | |||
href: '#', | |||
title: 'Переключить тёмную тему', | |||
text: 'Переключить тему' | |||
}) | |||
}); | |||
$('#user-tools').append($toggle); | |||
$toggle.find('a').on('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) { | |||
mw.loader.using(['wgl.theme.dark']).then(function() { | |||
$('body') | |||
.addClass('wgl-theme-dark') | |||
.removeClass('wgl-theme-light'); | |||
mw.hook('wgl.themeChanged').fire('dark'); | |||
}); | |||
} else { | |||
$('body') | |||
.addClass('wgl-theme-light') | |||
.removeClass('wgl-theme-dark'); | |||
mw.hook('wgl.themeChanged').fire('light'); | |||
} | |||
}); | |||
} | |||
}; | |||
$(self.init); | |||
}(jQuery, mediaWiki)); | }(jQuery, mediaWiki)); | ||