MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки Метка: ручная отмена |
||
| Строка 1: | Строка 1: | ||
;(function($, mw){ | ;(function($, mw){ | ||
if (mw.config.get('wgPageName') !== 'Обсуждение_участника:Pok') return; | |||
var | var COOKIES = { | ||
DARK: 'darkmode', | |||
THEME: 'theme' | |||
}, | |||
currentMode; | |||
function loadMode() { | |||
var theme = $.cookie(COOKIES.THEME); | |||
if (theme) return theme; | |||
return $.cookie(COOKIES.DARK) === 'true' ? 'dark' : 'light'; | |||
} | |||
function saveMode(mode) { | |||
$.cookie(COOKIES.THEME, mode, { expires: 365, path: '/' }); | |||
$.cookie(COOKIES.DARK, mode === 'dark', { expires: 365, path: '/' }); | |||
} | |||
function applyMode(mode) { | |||
$('body') | |||
.toggleClass('wgl-theme-dark', mode === 'dark') | |||
.toggleClass('wgl-theme-light', mode === 'light'); | |||
mw.hook('wgl.themeChanged').fire(mode); | |||
} | |||
currentMode = loadMode(); | |||
applyMode(currentMode); | |||
var $toggle = $('<div>', { | |||
id: 'pt-dm-toggle', | |||
html: $('<a>', { | |||
href: '#', | |||
title: 'Переключить тёмную тему', | |||
text: 'Переключить тему' | |||
}) | |||
}); | |||
}; | |||
$( | $('#user-tools').append($toggle); | ||
$toggle.on('click', 'a', function(e) { | |||
e.preventDefault(); | |||
currentMode = currentMode === 'dark' ? 'light' : 'dark'; | |||
saveMode(currentMode); | |||
applyMode(currentMode); | |||
}); | |||
}(jQuery, mediaWiki)); | }(jQuery, mediaWiki)); | ||