Olá a todos,
Estou desenvolvendo um tema para personalizar vários aspectos do Discourse padrão. Com isso em mente, uma das coisas que preciso personalizar é o topic-list-item, que parece ser bastante simples. Adicionei no meu tema um arquivo no caminho javascripts/discourse/templates/components/topic-list-item.hbs e posso colocar meu código lá. No entanto, é aí que as perguntas começam a surgir.
Existe um método no componente para aquele template chamado renderTopicListItem, que é o responsável por definir uma propriedade topicListItemContents, a qual é renderizada por padrão. Confira:
A primeira pergunta é POR QUÊ? Por que precisamos fazer isso? Por que não simplesmente usar o código Handlebars como de costume?
Para não interferir demais no código principal, decidi manter o topic-list-item como está e substituir o topic-list-item.raw.hbs no meu tema, o que funciona sem problemas.
No entanto, espero que ao adicionar um arquivo como javascripts/discourse/templates/mobile/list/topic-list-item.raw.hbs no meu tema, ele substitua a visualização móvel, mas não está funcionando.
O método findRawTemplate ainda está retornando o template móvel padrão do Discourse, que contém:
Mesmo fazendo edições manuais dentro do meu projeto local do Discourse, não consigo atualizar a versão móvel com as alterações.
Espero que a explicação faça sentido e que alguém tenha conhecimento sobre o assunto. Parece realmente quebrado por enquanto, e talvez queiramos corrigi-lo SE estiver realmente quebrado (posso fazer isso se entender um pouco mais o que está acontecendo).
Enquanto isso, continuarei procurando uma resposta e atualizarei com qualquer novidade. Abaixo, um pequeno GIF do que tenho no meu ambiente local.
http://g.recordit.co/AtOJlltJ8o
ATUALIZAÇÃO: Também atualizei o raw para .hbr, pois um commit recente alterou os arquivos, mas ainda não consegui fazer funcionar.


