Hola a todos,
Estoy creando un tema para personalizar varios aspectos del Discourse predeterminado. Con esto en mente, una de las cosas que necesito personalizar es el topic-list-item, que parece ser bastante sencillo. Agrego un archivo en mi tema bajo la ruta javascripts/discourse/templates/components/topic-list-item.hbs y puedo colocar mi código allí. Sin embargo, es aquí donde comienzan a surgir las preguntas.
Existe un método en el componente para esa plantilla llamado renderTopicListItem, que es el que establece una propiedad topicListItemContents, la cual se renderiza de forma predeterminada. Verifiquen:
La primera pregunta es ¿POR QUÉ? ¿Por qué necesitamos hacer eso? ¿Por qué no simplemente tener el código de Handlebars como de costumbre?
Para no interferir demasiado con el código principal, decidí dejar topic-list-item así y reemplazar topic-list-item.raw.hbs en mi tema, y eso funciona sin problemas.
Sin embargo, esperaba que al agregar un archivo como javascripts/discourse/templates/mobile/list/topic-list-item.raw.hbs en mi tema se reemplazara la vista móvil, pero no sucede.
El método findRawTemplate sigue devolviendo la plantilla móvil predeterminada de Discourse, que contiene:
Incluso haciendo ediciones manuales dentro de mi proyecto local de Discourse, no logro que la versión móvil se actualice con los cambios.
Espero que la explicación tenga sentido y que alguien tenga conocimiento sobre esto. Parece realmente defectuoso por ahora y quizás queramos arreglarlo SI realmente está roto (puedo hacerlo si entiendo un poco más lo que está sucediendo).
Mientras tanto, seguiré buscando una respuesta yo mismo y actualizaré cualquier novedad. A continuación, un pequeño GIF de lo que tengo en mi entorno local.
http://g.recordit.co/AtOJlltJ8o
ACTUALIZACIÓN: También he actualizado raw a .hbr debido a un commit reciente que cambió los archivos, pero aún no logro que funcione.


