Olá kynic,
onPageChange pode ser um pouco amplo demais para uso (e não confiável se você carregar/atualizar posts).
Você pode usar decorateCookedElement em vez disso. Ele é chamado para cada elemento cozido de post.
Além disso, aqui está uma maneira de desativar o indicador de e-mail. É apenas um hack para não incluir o HTML. Se você estiver curioso, pode ver o código original aqui.
<script type="text/discourse-plugin" version="0.8">
api.reopenWidget("post-meta-data", {
html(attrs) {
if (!attrs.via_email) {
return this._super(attrs);
}
// Não gere o 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>
Você também pode usar apenas CSS para ocultá-los.
.post-info.via-email,
.cooked details.elided {
display: none;
}