Comment déclencher à chaque chargement de footer (ou de page ?).

@Johani, une autre version de ce problème « comment déclencher ou être déclenché » est que j’utilise une version de Custom Header Links dans un plugin. Cela crée des liens vers certains éléments (« serveurs ») créés dans un modèle séparé ajouté par mon plugin. Lorsqu’un server est créé, je souhaite reconstruire les liens d’en-tête pour qu’ils pointent vers les deux serveurs créés le plus récemment. Je le fais actuellement dans un initialiseur et cela fonctionne très bien, sauf que pour que cela se mette à jour après l’ajout d’un serveur, vous devez recharger la page.

Vous m’avez expliqué comment ajouter et surveiller des déclencheurs, alors j’ai pensé pouvoir trouver une solution, mais la page qui effectue le travail se trouve dans discourse-subscriptions. Peut-être que ce que je veux faire, c’est soumettre une PR à discourse-subscriptions qui ajoute :

 this.appEvents.trigger("purchase-complete")

une fois l’achat terminé (et que l’achat déclenche l’ajout à un groupe, ce qui déclenche la création d’un serveur et le retrait de l’utilisateur du groupe). Ou, si je pouvais simplement déclencher un rechargement après la fin de l’achat, ou lorsque l’utilisateur clique sur « OK » dans la modale « achat terminé », cela me conviendrait aussi, mais je ne sais pas comment faire cela non plus (ce que j’ai essayé a simplement rechargé la page à l’infini…).

Donc, peut-être ici :

https://github.com/discourse/discourse-subscriptions/blob/main/assets/javascripts/discourse/controllers/s-show.js.es6#L71-L81

Je voudrais ajouter :

 this.appEvents.trigger("successful-transaction")

une fois que le chargement est défini sur false, puis je pourrais ajouter dans mon initialiseur :

 this.appEvents.on("successful-transaction")

pour effectuer la manipulation de l’en-tête ?

Je pense que, une fois cela fait, je devrai faire quelque chose de différent car je crains que :

      api.decorateWidget("header-buttons:before", (helper) => {
        return helper.h("ul.pfaffmanager-header-links", headerLinks);
      });

n’ajoute à header-buttons:before plutôt que de les remplacer, ce qui entraînerait l’apparition de nouveaux liens à chaque déclenchement ?