Ei @Johani, então, outra versão desse problema de “como acionar ou ser acionado” é que estou usando uma versão dos Custom Header Links em um plugin. Ele cria links para alguns itens (“servidores”) criados em um modelo separado que meu plugin adiciona. Quando um server é criado, quero reconstruir os links do cabeçalho para apontar para os dois servidores mais recentemente criados. Estou fazendo isso agora em um inicializador e funciona bem, exceto que, para atualizar após a adição de um servidor, você precisa recarregar a página.
Você me ensinou como adicionar e monitorar gatilhos, então pensei que poderia resolver isso, mas a página que faz o trabalho está no discourse-subscriptions. Talvez o que eu queira fazer seja enviar um PR para o discourse-subscriptions que adicione:
this.appEvents.trigger("purchase-complete")
após a conclusão da compra (e a compra aciona a adição a um grupo, o que aciona a criação de um servidor e a remoção do usuário do grupo). Ou, se eu pudesse apenas acionar um recarregamento após a conclusão da compra ou quando o usuário clicasse em “OK” no modal de “compra concluída”, também funcionaria, mas não sei como fazer isso (o que tentei apenas recarregou a página infinitamente…)
Então, talvez aqui:
Eu queira adicionar:
this.appEvents.trigger("successful-transaction")
após o carregamento ser definido como falso, e então eu poderia fazer com que meu inicializador adicione:
this.appEvents.on("successful-transaction")
para fazer a manipulação do cabeçalho?
Acho que, assim que fizer isso, precisarei fazer algo diferente, pois tenho medo de que:
api.decorateWidget("header-buttons:before", (helper) => {
return helper.h("ul.pfaffmanager-header-links", headerLinks);
});
adicione a header-buttons:before em vez de substituí-los, então eu teria mais links toda vez que fosse acionado?