api.decoratePluginOutlet feuert nicht?

Ich habe eine Themenkomponente, um stummgeschaltete Tags und Kategorien in der Suche nicht anzuzeigen, aber ich habe sie deaktiviert und dann wieder aktiviert, um etwas anderes zu testen, und jetzt funktioniert sie nicht mehr, auch nicht mit console.log. Ich kann api.decoratePluginOutlet überhaupt nicht dazu bringen, etwas zu tun, nicht einmal in einer neuen, sauberen Themenkomponente, die auf dem Beispiel in plugin-api.js basiert.

A. Gibt es einen Trick, damit decoratePluginOutlet funktioniert, und B. gibt es eine bessere Möglichkeit, einfach eine Klasse zu einem Suchergebnislistenelement hinzuzufügen? Im Moment verwende ich decoratePluginOutlet, um das Element zu erhalten und die Hierarchie nach oben und unten zu durchlaufen, um die Kategorie zu finden und dann hinzuzufügen, aber das fühlt sich unordentlich an. Der vollständige Code ist unten.

<script type="text/discourse-plugin" version="0.8">
const discourseComputed = require("discourse-common/utils/decorators").default;
let currentUser = api.getCurrentUser();

api.decoratePluginOutlet(
  "full-page-search-category",
  (elem, args) => {
    console.log(currentUser)
    let searchCategory = elem.parentElement.parentElement
    let fpsTopic = searchCategory.parentElement.parentElement
    let category_id = searchCategory.children[0].getAttribute('href').split("/").slice(-1);
    let search_children = searchCategory.children
    let searchArray = Array.from(search_children)
    let tags = searchArray.filter(item => item.classList.contains("discourse-tags"))
    if (tags[0]) {
        let tagList = Array.from(tags[0].children).map(x => x.innerText)
        for (let index = 0; index < tagList.length; ++index) {
            fpsTopic.classList.add("tagged_" + tagList[index])
        }
        console.log()
    }
    fpsTopic.classList.add("category_" + category_id)
    
    if (currentUser) {
        const muted_categories = currentUser.muted_category_ids
        const muted_tags = currentUser.muted_tags
        if (muted_categories) {
            if (muted_categories.includes(parseInt(category_id))) {
                const children = fpsTopic.childNodes;
                            const newNode = document.createElement("a");
                            const textNode = document.createTextNode("Dieses Ergebnis stammt aus einer Kategorie, die Sie stummgeschaltet haben.");
                            newNode.classList.add("block-notice")
                            newNode.appendChild(textNode);
                            newNode.onclick = function() { showComment(this); };
                            fpsTopic.insertBefore(newNode, fpsTopic.children[0]);
                            fpsTopic.classList.add("blocker-blocked");
                            newNode.classList.remove("blocker-blocked");
            }
        }
        
        if (muted_tags && tags[0]) {
            let tagList = Array.from(tags[0].children).map(x => x.innerText)
            if (muted_tags.some(v => tagList.includes(v))) {
                const children = fpsTopic.childNodes;
                            const newNode = document.createElement("a");
                            const textNode = document.createTextNode("Dieses Ergebnis stammt aus einem Tag, den Sie stummgeschaltet haben.");
                            newNode.classList.add("block-notice")
                            newNode.appendChild(textNode);
                            newNode.onclick = function() { showComment(this); };
                            fpsTopic.insertBefore(newNode, fpsTopic.children[0]);
                            fpsTopic.classList.add("blocker-blocked");
                            newNode.classList.remove("blocker-blocked");
            }
        }
    }
  }
 );
 
function showComment(elem) {
    const cooked = elem.parentNode;
    elem.remove();
    cooked.classList.remove("blocker-blocked");
}
</script>