Ciao kynic,
onPageChange potrebbe essere un po’ troppo generico per l’uso (e inaffidabile se carichi/aggiorni post).
Puoi usare decorateCookedElement invece. Viene chiamato per ogni elemento post-cotto.
Inoltre, ecco un modo per disabilitare l’indicatore email. È solo un trucco per non includere l’HTML. Se sei curioso, puoi vedere il codice originale qui.
<script type="text/discourse-plugin" version="0.8">
api.reopenWidget("post-meta-data", {
html(attrs) {
if (!attrs.via_email) {
return this._super(attrs);
}
// Non generare il widget "post-email-indicator".
attrs.via_email = false;
const html = this._super(attrs);
attrs.via_email = true;
return html;
}
})
api.decorateCookedElement((element, helper) => {
if (helper?.getModel().via_email) {
element.querySelector('details.elided').remove();
}
}, { onlyStream: true });
</script>
Potresti anche usare solo CSS per nasconderli.
.post-info.via-email,
.cooked details.elided {
display: none;
}