Filtro resolvido não atualiza o status no menu suspenso

Isso já ocorreu há algum tempo e foi corrigido, então acho que é uma regressão. O filtro suspenso para o status Resolvido funciona (as listas são filtradas), mas o filtro suspenso não é atualizado para o status de filtro atual. Ele sempre permanece em “todos”.

Isso está na versão estável mais recente do Discourse.

Outro problema que encontrei é que posso restringir o uso de Resolvido a tags. Mas o filtro não aparecerá nas listas de tags. Ele só aparece em listas de categorias onde o Resolvido está habilitado, ou quando habilitado em todos os tópicos.

Editar: Eu também uso o filtro no componente de tema Listas em Destaque. Isso funcionou:

    const topicList = await this.store.findFiltered('topicList', {
      filter: this.args.list.filter,
      params: {
        order: 'activity',
        category: this.args.list.category,
        tags: this.args.list.tag,
        solved: this.args.list.solved,
      },

mas o filtro parou de funcionar no componente. Não vejo erros, no entanto.

1 curtida

Não sei o porquê e se é uma alteração no core, mas uma rápida depuração aqui

https://github.com/discourse/discourse-solved/blob/main/assets/javascripts/discourse/connectors/bread-crumbs-right/solved-status-filter.js#L47-L51

mostra que modelParams não existe se você não estiver em uma página de categoria.

Está definido aqui:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/routes/build-category-route.js#L71

Várias alternativas funcionam na página inicial e na rota de categoria:

.queryParams.solved
.attributes.list.params.solved
.attributes.list.listParams.solved

Não vejo nenhuma alteração recente no core. :thinking:

Pelo que vejo, modelParams tem sido usado desde este PR:

1 curtida

Obrigado por investigar isso, @Arkshine! Com relação ao meu componente, eu o publiquei há apenas dois meses e tenho certeza de que isso estava funcionando então :thinking:

Olá @manuel! Obrigado pelo relato. Não consegui reproduzir o principal problema que você estava tendo com o filtro de status não atualizando, mas mudei para this.router.currentRoute.queryParams?.solved para verificar o status, o que pode funcionar melhor.

Como as tags não estão vinculadas às categorias, mostrar o filtro em todas as tags nem sempre é relevante, mas eu o adicionei aqui mesmo assim.

Sobre o seu componente de tema, você deve verificar yes / no em vez de solved / unsolved ao filtrar por solved. Acabei de abrir um PR com a alteração proposta.

3 curtidas

Este tópico foi automaticamente fechado após 3 dias. Novas respostas não são mais permitidas.