User:MetalManeMc/vector.js

From bg3.wiki
Revision as of 14:35, 20 December 2023 by MetalManeMc (talk | contribs)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/**
 * Toggle for dark mode testing
 * Inspired from https://minecraft.wiki/w/MediaWiki:Gadget-darkmode.js
 */

portletLink = mw.util.addPortletLink(
    'p-personal',
    '',
    '',
    'pt-dm-toggle',
    'Preview in light mode',
    null,
    $('#pt-userpage, #pt-anonuserpage, #pt-createaccount')[0]
);

$(portletLink).find('a').click(function(e) {
    e.preventDefault();
    if (mw.user.isAnon()) {
        if (mw.cookie.get('theme',null,'dark-grey')==='dark-grey') {
            mw.cookie.set('theme','light');
            mw.loader.using(['ext.gadget.theme-light']).then(function() {
                $('body').addClass('theme-light');
                $('body').removeClass('theme-dark-grey');
            });
        }
        else {
            mw.cookie.set('theme','dark-grey');
            $('body').addClass('theme-dark-grey');
            $('body').removeClass('theme-light');
        }
    }
    else {
        if (mw.user.options.get('userjs-theme','dark-grey')==='dark-grey') {
            new mw.Api().saveOption('userjs-theme','light').then(function() {
                mw.user.options.set('userjs-theme','light');
                $('body').addClass('theme-light');
                $('body').removeClass('theme-dark-grey');
            });
        }
        else {
            new mw.Api().saveOption('userjs-theme','dark-grey').then(function() {
                mw.user.options.set('userjs-theme','dark-grey');
                mw.loader.using(['ext.gadget.darkvector']).then(function() {
                	$('body').addClass('theme-dark-grey');
                	$('body').removeClass('theme-light');
                });
            });
        }
    }
});