TL;DR
Questo aggiungerà una classe topic-solution ai post contrassegnati come risposta.
api.addPostClassesCallback((attrs) => {
if (attrs.accepted_answer) return ["topic-solution"];
});
Le classi di un post sono determinate qui.
Il hook che ti serve esiste già alla fine di quel file… più o meno così.
Il plugin-api dispone di un metodo che ti permette di aggiungere classi a un post in base a una condizione.
Ciò che fa è applicare un callback specifico e restituire una classe da aggiungere se la condizione è soddisfatta.
Quando il callback viene attivato, Discourse gli passa gli attributi del post. Quindi, ad esempio, puoi fare qualcosa di simile.
api.addPostClassesCallback((attrs) => {
console.log(attrs);
});
Se controlli la console, vedrai che vengono visualizzati gli attributi di ciascun post.
Questi sono solo esempi; ce ne sono altri.
Per tua fortuna, quando un post viene contrassegnato come soluzione, Discourse tiene traccia di questo fatto e lo aggiunge agli attributi del post. La proprietà si chiama accepted_answer.
Quindi, devi solo verificare se è vero e aggiungere la tua classe personalizzata in tal caso. Più o meno così:
api.addPostClassesCallback((attrs) => {
if (attrs.accepted_answer) return ["topic-solution"];
});
Questo dovrebbe essere sufficiente per attivare la classe anche se l’OP cambia idea e sceglie una soluzione diversa. Rimuoverà la classe dalla vecchia risposta e la aggiungerà a quella nuova.
