L'OP degli avvisi non evidenziato con il colore dello Staff

Ciao a tutti,

Stavo indagando sul motivo per cui i primi messaggi dei PM di avviso hanno perso lo stile del colore dello staff dopo la migrazione del flusso dei post a Glimmer, e volevo condividere ciò che ho scoperto: sembra essere una piccola svista piuttosto che un cambiamento intenzionale (almeno dal punto di vista del codice).

Il problema

In post.gjs (riga 436), la classe CSS per i moderatori viene applicata in base a:

(if
  (or @post.isModeratorAction (and @post.isWarning @post.firstPost))
  "post--moderator moderator"
  "post--regular regular"
)

@post.isModeratorAction funziona correttamente: è un getter appropriato nel modello Post. Ma @post.isWarning non esiste affatto nel modello Post.

Non è definita alcuna proprietà, getter o campo tracciato isWarning lì. Quindi la condizione (and @post.isWarning @post.firstPost) valuta sempre a false, e la classe moderator non viene mai applicata ai primi messaggi dei PM di avviso.

Come funzionava prima

Nel vecchio sistema di widget, transformPost (transform-post.js) mappava esplicitamente il flag a livello di topic agli attributi del post:

postAtts.isWarning = topic.is_warning;

Poi widgets/post.js controllava attrs.isWarning && attrs.firstPost per applicare la classe moderator. Questo ponte è stato perso durante la migrazione a Glimmer.

La mia opinione

Poiché post.gjs fa riferimento attivo a @post.isWarning, sembra che l’intenzione fosse di preservare questo comportamento. Se la rimozione del colore dello staff dagli avvisi era intenzionale, allora il ramo (and @post.isWarning @post.firstPost) in post.gjs è codice morto e potrebbe essere ripulito. Se si tratta di un bug (il che sembra più probabile dato il codice del vecchio widget), la correzione sarebbe un piccolo getter nel modello Post:

get isWarning() {
  return this.topic?.is_warning;
}

Volevo verificare l’opinione del team: questo sembra essere un’omissione dalla migrazione a Glimmer, o è stato intenzionalmente lasciato fuori? In ogni caso, il riferimento morto a @post.isWarning in post.gjs potrebbe valere la pena di essere affrontato.

Grazie!

3 Mi Piace