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 !