Jump to content

MediaWiki:Common.js: Difference between revisions

From AOWIS
No edit summary
No edit summary
Line 3: Line 3:
// MediaWiki:Common.js
// MediaWiki:Common.js
if (mw.config.get('wgPageName') === 'Main_Page') {
if (mw.config.get('wgPageName') === 'Main_Page') {
    // Check every 50ms if the TOC exists
     const observer = new MutationObserver((mutationsList, observer) => {
     const hideTOC = setInterval(() => {
         for (const mutation of mutationsList) {
         const tocContainer = document.querySelector('.page-Main_Page .vector-toc');
            if (mutation.target.classList.contains('vector-animations-ready')) {
        if (tocContainer) {
                const btn = document.querySelector('[data-event-name="pinnable-header.vector-toc.unpin"]');
            // Hide the TOC using the proper Vector method if available
                if (btn) btn.click(); // simulate user clicking "hide"
            if (tocContainer.vectorTocInstance && tocContainer.vectorTocInstance.unpin) {
                 observer.disconnect();
                 tocContainer.vectorTocInstance.unpin();
                 break;
            } else {
                 // fallback: hide visually
                tocContainer.style.display = 'none';
             }
             }
            clearInterval(hideTOC); // stop checking
         }
         }
     }, 50);
     });
    observer.observe(document.documentElement, {
        attributes: true,
        attributeFilter: ['class']
    });
}
}

Revision as of 01:09, 19 March 2026

/* Any JavaScript here will be loaded for all users on every page load. */

// MediaWiki:Common.js
if (mw.config.get('wgPageName') === 'Main_Page') {
    const observer = new MutationObserver((mutationsList, observer) => {
        for (const mutation of mutationsList) {
            if (mutation.target.classList.contains('vector-animations-ready')) {
                const btn = document.querySelector('[data-event-name="pinnable-header.vector-toc.unpin"]');
                if (btn) btn.click(); // simulate user clicking "hide"
                observer.disconnect();
                break;
            }
        }
    });
    observer.observe(document.documentElement, {
        attributes: true,
        attributeFilter: ['class']
    });
}