MediaWiki:Common.js: Difference between revisions

From RPG Continuum Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
(function () {
(function () {
    function applyWidthMode() {
        var mode = localStorage.getItem('rpgc-width-mode') || 'readable';


        document.body.classList.remove('rpgc-readable-width', 'rpgc-full-width');
if (new URLSearchParams(window.location.search).get('embed') === '1') {
        document.body.classList.add(mode === 'full' ? 'rpgc-full-width' : 'rpgc-readable-width');
    document.body.classList.add('rpgc-embed');
}


         var button = document.getElementById('rpgc-width-toggle');
function applyWidthMode() {
        if (button) {
    var narrowWindow = window.matchMedia('(max-width: 950px)').matches;
            button.textContent = mode === 'full' ? 'Readable width' : 'Full width';
    var mode = localStorage.getItem('rpgc-width-mode') || 'readable';
        }
 
    document.body.classList.remove(
        'rpgc-readable-width',
         'rpgc-full-width',
        'rpgc-narrow-width'
    );
 
    if (narrowWindow) {
        document.body.classList.add('rpgc-narrow-width');
    } else {
        document.body.classList.add(
            mode === 'full' ? 'rpgc-full-width' : 'rpgc-readable-width'
        );
    }
 
    var button = document.getElementById('rpgc-width-toggle');
 
    if (button) {
        button.textContent =
            mode === 'full' ? 'Readable width' : 'Full width';
     }
     }
}


     function addToggle() {
     function addToggle() {
Line 34: Line 53:
     $(addToggle);
     $(addToggle);
     mw.hook('wikipage.content').add(addToggle);
     mw.hook('wikipage.content').add(addToggle);
window.addEventListener('resize', applyWidthMode);
})();
})();

Latest revision as of 05:23, 11 July 2026

(function () {

if (new URLSearchParams(window.location.search).get('embed') === '1') {
    document.body.classList.add('rpgc-embed');
}

function applyWidthMode() {
    var narrowWindow = window.matchMedia('(max-width: 950px)').matches;
    var mode = localStorage.getItem('rpgc-width-mode') || 'readable';

    document.body.classList.remove(
        'rpgc-readable-width',
        'rpgc-full-width',
        'rpgc-narrow-width'
    );

    if (narrowWindow) {
        document.body.classList.add('rpgc-narrow-width');
    } else {
        document.body.classList.add(
            mode === 'full' ? 'rpgc-full-width' : 'rpgc-readable-width'
        );
    }

    var button = document.getElementById('rpgc-width-toggle');

    if (button) {
        button.textContent =
            mode === 'full' ? 'Readable width' : 'Full width';
    }
}

    function addToggle() {
        if (document.getElementById('rpgc-width-toggle')) return;

        var title = document.querySelector('.firstHeading, .mw-first-heading');
        if (!title) return;

        var button = document.createElement('button');
        button.id = 'rpgc-width-toggle';
        button.type = 'button';

        button.addEventListener('click', function () {
            var current = localStorage.getItem('rpgc-width-mode') || 'readable';
            localStorage.setItem('rpgc-width-mode', current === 'full' ? 'readable' : 'full');
            applyWidthMode();
        });

        title.appendChild(button);
        applyWidthMode();
    }

    $(addToggle);
    mw.hook('wikipage.content').add(addToggle);
window.addEventListener('resize', applyWidthMode);
})();