OP de advertencias no resaltado con color de Staff

Hola a todos,

Estaba investigando por qué los primeros mensajes de advertencia (warning) en mensajes privados perdían su estilo de color de staff después de la migración del flujo de publicaciones a Glimmer, y quería compartir lo que encontré: parece ser un pequeño olvido más que un cambio intencional (al menos en el lado del código).

El problema

En post.gjs (línea 436), la clase CSS de moderador se aplica en función de:

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

@post.isModeratorAction funciona correctamente: es un getter adecuado en el modelo Post. Pero @post.isWarning no existe en absoluto en el modelo Post.

No se define ninguna propiedad, getter ni campo rastreado isWarning allí. Por lo tanto, la condición (and @post.isWarning @post.firstPost) siempre evalúa como false, y la clase moderator nunca se aplica a los primeros mensajes de advertencia en mensajes privados.

Cómo funcionaba antes

En el antiguo sistema de widgets, transformPost (transform-post.js) mapeaba explícitamente la bandera de nivel de tema a los atributos de la publicación:

postAtts.isWarning = topic.is_warning;

Luego, widgets/post.js verificaba attrs.isWarning && attrs.firstPost para aplicar la clase moderator. Este puente se perdió durante la migración a Glimmer.

Mi interpretación

Dado que post.gjs hace referencia activa a @post.isWarning, parece que la intención era preservar este comportamiento. Si eliminar el color de staff de las advertencias fue intencional, entonces la rama (and @post.isWarning @post.firstPost) en post.gjs es código muerto y podría limpiarse. Si es un error (lo cual parece más probable dado el código antiguo de widgets), la corrección sería un pequeño getter en el modelo Post:

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

Quería consultar la opinión del equipo: ¿esto parece ser un olvido de la migración a Glimmer, o se omitió intencionalmente? En cualquier caso, podría valer la pena abordar la referencia muerta a @post.isWarning en post.gjs.

¡Gracias!

3 Me gusta