MediaWiki:Common.js: различия между версиями

мНет описания правки
мНет описания правки
Строка 4: Строка 4:
     }
     }


var DARK_COOKIE = 'darkmode',
    var DARK_COOKIE = 'darkmode',
THEME_COOKIE = 'theme',
        THEME_COOKIE = 'theme',
isUsingDarkmode = $.cookie(THEME_COOKIE) === 'dark' || ($.cookie(THEME_COOKIE) == null && $.cookie(DARK_COOKIE) === 'true'),
        isUsingDarkmode = $.cookie(THEME_COOKIE) === 'dark'
isMobile = mw.config.get('wgMFMode') !== null,
                    || ($.cookie(THEME_COOKIE) == null && $.cookie(DARK_COOKIE) === 'true');
portletLink;


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


portletLink = mw.util.addPortletLink(
            var $container = $('#user-tools');
( isMobile ? 'p-navigation' : 'user-tools' ),
 
'',
            var $div = $('<div>', {
( isMobile ? 'Переключить тёмную тему' : '' ),
                id: 'pt-dm-toggle',
'pt-dm-toggle',
                text: 'Переключить тёмную тему',
'Переключить тёмную тему',
                css: { cursor: 'pointer', padding: '0.4em' }
null,
            });
$('#pt-userpage, #pt-anonuserpage, #pt-createaccount')[0]
 
);
            $container.append($div);
 
$(portletLink).find('a').click(function(e) {
            $div.on('click', function(e) {
e.preventDefault();
                e.preventDefault();
 
isUsingDarkmode = !isUsingDarkmode;
                isUsingDarkmode = !isUsingDarkmode;
$.cookie(THEME_COOKIE, isUsingDarkmode ? 'dark' : 'light', {expires: 365, path: '/'});
                $.cookie(THEME_COOKIE, isUsingDarkmode ? 'dark' : 'light', { expires: 365, path: '/' });
$.cookie(DARK_COOKIE, isUsingDarkmode, {expires: 365, path: '/'});
                $.cookie(DARK_COOKIE, isUsingDarkmode, { expires: 365, path: '/' });
 
if (isUsingDarkmode === true) {
                if (isUsingDarkmode) {
mw.loader.using(['wgl.theme.dark']).then(function() {
                    mw.loader.using(['wgl.theme.dark']).then(function() {
  $('body').addClass('wgl-theme-dark')
                        $('body').addClass('wgl-theme-dark').removeClass('wgl-theme-light');
  $('body').removeClass('wgl-theme-light')
                        mw.hook('wgl.themeChanged').fire('dark');
  mw.hook('wgl.themeChanged').fire('dark')
                    });
});
                } else {
} else {
                    $('body').addClass('wgl-theme-light').removeClass('wgl-theme-dark');
$('body').addClass('wgl-theme-light')
                    mw.hook('wgl.themeChanged').fire('light');
$('body').removeClass('wgl-theme-dark')
                }
mw.hook('wgl.themeChanged').fire('light')
            });
}
        }
});
    };
}
 
}
    $(self.init);
$(self.init);


}(jQuery, mediaWiki));
}(jQuery, mediaWiki));