MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 4: | Строка 4: | ||
} | } | ||
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: '/' }); | |||
var $container = $('#user-tools'); | |||
var $div = $('<div>', { | |||
id: 'pt-dm-toggle', | |||
text: 'Переключить тёмную тему', | |||
css: { cursor: 'pointer', padding: '0.4em' } | |||
}); | |||
$container.append($div); | |||
$div.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)); | ||