OP von Warnungen nicht mit Staff-Farbe hervorgehoben

Hallo zusammen,

ich habe untersucht, warum Warnungs-PMs nach der Migration zum Glimmer-Post-Stream ihre farbliche Hervorhebung für Mitarbeiter verloren haben, und möchte meine Erkenntnisse teilen – es sieht nach einer kleinen Übersehenheit aus, eher als nach einer beabsichtigten Änderung (zumindest auf der Code-Ebene).

Das Problem

In post.gjs (Zeile 436) wird die CSS-Klasse für Moderatoren basierend auf Folgendem angewendet:

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

@post.isModeratorAction funktioniert korrekt – es ist ein korrekter Getter im Post-Modell. Aber @post.isWarning existiert im Post-Modell überhaupt nicht.

Es gibt keine isWarning-Eigenschaft, keinen Getter oder kein getracktes Feld. Daher wird die Bedingung (and @post.isWarning @post.firstPost) immer als false ausgewertet, und die moderator-Klasse wird niemals auf erste Beiträge von Warnungs-PMs angewendet.

Wie es vorher funktionierte

Im alten Widget-System hat transformPost (transform-post.js) explizit das topic-Ebene-Flag auf die Post-Attribute abgebildet:

postAtts.isWarning = topic.is_warning;

Anschließend hat widgets/post.js geprüft, ob attrs.isWarning && attrs.firstPost, um die moderator-Klasse anzuwenden. Diese Brücke ging bei der Glimmer-Migration verloren.

Meine Einschätzung

Da post.gjs aktiv auf @post.isWarning verweist, scheint es so, als ob die Abschaftung dieses Verhaltens beabsichtigt war. Wenn das Entfernen der Mitarbeiterfarbe bei Warnungen beabsichtigt war, dann ist der Zweig (and @post.isWarning @post.firstPost) in post.gjs toter Code und könnte bereinigt werden. Wenn es ein Bug ist (was aufgrund des alten Widget-Codes wahrscheinlicher erscheint), wäre die Lösung ein kleiner Getter im Post-Modell:

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

Ich wollte wissen, was das Team dazu denkt – sieht das nach einer Übersehenheit bei der Glimmer-Migration aus, oder wurde es absichtlich weggelassen? Auf jeden Fall könnte die tote Referenz zu @post.isWarning in post.gjs angegangen werden.

Danke!

3 „Gefällt mir“