Modificando resultados de busca

Gostaria de poder ajustar um pouco o estilo nos resultados da pesquisa (menu suspenso da classe de lupa no canto superior direito). Agora, isso parece gerar componentes dinamicamente (em app/assets/javascripts/discourse/app/lib/search.js) em vez de usar um template. Parece que não consigo fazer

      api.modifyClass("component:search-result-post", {
        didInsertElement() {
          this._super(...arguments);

        },
      });

ou algo semelhante.

Como posso obter um gatilho/evento e modificar parte do HTML gerado?

2 curtidas

Olá Richard,

Você pode detalhar quais modificações você está procurando?

Como ponto de partida, acredito que você precisaria mexer em:

api.reopenWidget(`search-result-post`, {
    html(attrs) {
        //
    }
})

Aqui para post, mas você também tem: tag, category, group, user e topic.

4 curtidas

Obrigado pela sua ajuda!!!

2 curtidas

Atualização: a geração de HTML naquele widget era bastante complexa e tinha muitas dependências externas. Eu também não queria copiar todo aquele código para o nosso plugin, então acabei fazendo isso

      api.reopenWidget(`search-result-topic`, {
        html(attrs) {
          const html = this._super(attrs);
          // modifica o html como acharmos melhor
          return html;
        }
      });

Modificar o HTML já gerado provavelmente não é a maneira mais elegante de fazer isso, mas me salvou de ter que copiar um grande bloco de código do core para o plugin, tornando o plugin mais robusto contra futuras atualizações do core.

1 curtida

Sim, eu também notei isso quando tentei do meu lado. Acredito que você não tenha muita escolha aqui.

1 curtida

Este tópico foi fechado automaticamente 30 dias após a última resposta. Novas respostas não são mais permitidas.