Botão Zendesk não atualiza corretamente ao mudar de tópico sem atualizar a página

Olá, estou enfrentando um problema com o comportamento do botão "View on Zendesk" do plugin Zendesk. Quando um ticket já existe no Zendesk, o botão é exibido corretamente como "View on Zendesk". No entanto, se navego para um tópico diferente que não tem um ticket Zendesk correspondente, o botão ainda mostra inicialmente "View on Zendesk" em vez de "Create Zendesk Ticket". Assim que atualizo a página, o botão é atualizado para mostrar a opção correta "Create Zendesk Ticket".

Parece que o componente do botão não está sendo renderizado novamente ao navegar para um novo tópico. Acredito que uma solução possa envolver o acionamento de uma nova renderização deste componente sempre que houver uma mudança de página.

Alguém poderia me orientar sobre a melhor forma de abordar isso, ou se há alguma maneira de forçar o componente a ser atualizado corretamente ao navegar? Quaisquer insights ou sugestões seriam apreciados.

Olá,

Espero que esteja tudo bem! Gostaria de acompanhar e verificar se houve alguma atualização em relação a este problema. Seus insights ou orientações seriam muito apreciados.

Agradeço desde já!

Pode ser que não esteja detectando a mudança de página. Isso provavelmente se deve à forma como o framework frontend (provavelmente Ember.js, já que o Discourse o utiliza) lida com a renderização de componentes durante a navegação.

Você pode adicionar um listener para mudanças de rota, algo semelhante a isto:


export default Component.extend({
  router: service(),

  didInsertElement() {
    this._super(...arguments);

    this.router.on('routeDidChange', () => {
      this.refreshZendeskButton();
    });
  },

  willDestroyElement() {
    this._super(...arguments);

    this.router.off('routeDidChange', this.refreshZendeskButton);
  },
});

Isso pode ter que ser alterado, pois usa setupComponent():

A verificação se há um ticket zendesk válido usa zendesk_id. Talvez precise de um api.onPageChange()?