OP des avertissements non mis en évidence avec la couleur du personnel

Salut tout le monde,

J’ai enquêté pour comprendre pourquoi les premiers messages des MP d’avertissement perdaient leur style de couleur « staff » après la migration vers le flux de messages Glimmer, et je voulais partager ce que j’ai trouvé : cela ressemble à une petite omission plutôt qu’à un changement intentionnel (du moins au niveau du code).

Le problème

Dans post.gjs (ligne 436), la classe CSS de modérateur est appliquée en fonction de :

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

@post.isModeratorAction fonctionne correctement — c’est un getter approprié sur le modèle Post. Mais @post.isWarning n’existe tout simplement pas sur le modèle Post.

Aucune propriété, getter ou champ suivi isWarning n’y est défini. La condition (and @post.isWarning @post.firstPost) évalue donc toujours à false, et la classe moderator n’est jamais appliquée aux premiers messages des MP d’avertissement.

Comment cela fonctionnait avant

Dans l’ancien système de widgets, transformPost (transform-post.js) mappeait explicitement l’indicateur de niveau de sujet vers les attributs du message :

postAtts.isWarning = topic.is_warning;

Ensuite, widgets/post.js vérifiait attrs.isWarning && attrs.firstPost pour appliquer la classe moderator. Ce pont a été perdu lors de la migration vers Glimmer.

Mon analyse

Puisque post.gjs référence activement @post.isWarning, il semble que l’intention était de préserver ce comportement. Si la suppression de la couleur staff des avertissements était intentionnelle, alors la branche (and @post.isWarning @post.firstPost) dans post.gjs est du code mort et pourrait être nettoyée. S’il s’agit d’un bug (ce qui semble plus probable au vu de l’ancien code de widget), la correction consisterait à ajouter un petit getter sur le modèle Post :

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

Je voulais vérifier ce que pensait l’équipe : cela ressemble-t-il à une omission lors de la migration Glimmer, ou a-t-il été laissé de côté intentionnellement ? Dans tous les cas, la référence morte à @post.isWarning dans post.gjs mérite peut-être d’être traitée.

Merci !

3 « J'aime »