Jump to content

User:SD0001/dark-mode-toggle.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by SD0001 (talk | contribs) at 19:27, 18 August 2021 (msg fix). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/**
 * Enables or disables the dark mode gadget.
 */
 
mw.messages.set({
	'darkmode-turn-on-label': 'Dark mode',
	'darkmode-turn-on-tooltip': 'Turn on dark mode',
	'darkmode-turn-off-label': 'Light mode',
	'darkmode-turn-off-tooltip': 'Turn off dark mode',
	'darkmode-turning-on': 'Enabling dark mode ...',
	'darkmode-turning-off': 'Disabling dark mode ...'
});
	
$.when($.ready, mw.loader.using(['mediawiki.util', 'mediawiki.api'])).then(function() {
    var inDarkMode = !!mw.user.options.get('gadget-dark-mode');

    var linkText = inDarkMode ? mw.msg('darkmode-turn-off-label') : mw.msg('darkmode-turn-on-label');

    mw.util.addPortletLink('p-cactions', '#', linkText, 'pt-darkmode', inDarkMode ? mw.msg('darkmode-turn-off-tooltip') : mw.msg('darkmode-turn-on-tooltip'), 'np');

    $('#pt-darkmode').on('click', function(e) {
        e.preventDefault();
        
        mw.notify(inDarkMode ? mw.msg('darkmode-turning-off') : mw.msg('darkmode-turning-on'));
       
        new mw.Api().saveOption('gadget-dark-mode', inDarkMode ? '0' : '1').then(function() { 
	    	location.reload(); 
	    });
    });
});