More actions
No edit summary Tag: Manual revert |
No edit summary |
||
Line 21: | Line 21: | ||
}); | }); | ||
} | } | ||
}); | |||
// === Hook into Citizen TOC clicks === | |||
mw.hook('wikipage.content').add(function() { | |||
if (window.innerWidth < 768) return; // Desktop only | |||
// Wait for Citizen TOC module to load | |||
mw.loader.using('skins.citizen.toc').then(function() { | |||
// Override onHeadingClick behavior | |||
const citizenToc = require('skins.citizen.toc'); | |||
const originalOnHeadingClick = citizenToc.props.onHeadingClick; | |||
citizenToc.props.onHeadingClick = function(id) { | |||
// Expand the main page section manually | |||
const anchor = document.getElementById(id.replace(/^toc-/, '')); // Remove "toc-" prefix | |||
if (anchor) { | |||
const sectionHeading = anchor.closest('.citizen-section-heading'); | |||
const content = sectionHeading?.nextElementSibling; | |||
if (content && content.hidden) { | |||
content.hidden = false; // Expand parent section | |||
} | |||
// Scroll after a slight delay | |||
setTimeout(() => { | |||
anchor.scrollIntoView({ behavior: 'smooth', block: 'start' }); | |||
}, 50); | |||
} | |||
// Then call the original behavior to update TOC highlighting | |||
if (originalOnHeadingClick) { | |||
originalOnHeadingClick(id); | |||
} | |||
}; | |||
}); | |||
}); | }); |