TL;DR
Isso adicionará uma classe topic-solution às postagens marcadas como resposta.
api.addPostClassesCallback((attrs) => {
if (attrs.accepted_answer) return ["topic-solution"];
});
As classes de uma postagem são determinadas aqui.
O gancho que você deseja já existe no final disso… assim.
O plugin-api possui um método que permite adicionar classes a uma postagem com base em uma condição.
O que isso faz é aplicar um callback específico e retornar uma classe a ser adicionada se a condição for atendida.
Quando o callback é acionado, o Discourse passa os atributos da postagem para ele. Então, por exemplo, você pode fazer algo assim.
api.addPostClassesCallback((attrs) => {
console.log(attrs);
});
Se você verificar o console, verá que ele exibe os atributos de cada postagem.
Estes são apenas exemplos; há mais coisas lá.
Por sorte, quando uma postagem é marcada como solução, o Discourse acompanha isso e o atributo é adicionado aos dados da postagem. A propriedade se chama accepted_answer.
Então, você só precisa verificar se isso é verdadeiro e adicionar sua classe personalizada se for. Assim:
api.addPostClassesCallback((attrs) => {
if (attrs.accepted_answer) return ["topic-solution"];
});
Isso deve ser suficiente para alternar a classe, mesmo que o OP mude de ideia e escolha uma solução diferente. A classe será removida da resposta antiga e adicionada à nova.
