J’essaie de suivre les connexions des utilisateurs sur le forum de notre client. En gros, j’aimerais créer un écouteur d’événements (en JavaScript pur) qui exécute une fonction JavaScript chaque fois qu’un utilisateur se connecte au forum.
Existe-t-il un événement DOM auquel je peux me fier ?
Vous pouvez utiliser quelque chose comme ceci dans l’onglet common > header d’un composant de thème.
<script type="text/discourse-plugin" version="0.8">
const user = api.getCurrentUser();
// l'utilisateur est déjà connecté, on arrête
if (user) {
return;
}
// faites votre travail ici...
const clickCallback = (clickEvent) => {
console.log(clickEvent);
alert("l'utilisateur se connecte");
// ..
// ..
};
api.onAppEvent("modal:body-shown", (event) => {
const loginButton = document.querySelector("#login-button");
if (loginButton) {
loginButton.addEventListener("click", clickCallback, { once: true });
}
});
</script>
Ajoutez le code dont vous avez besoin dans la fonction clickCallback, et il se déclenchera lorsque l’utilisateur cliquera sur le bouton Login dans la fenêtre modale. Cet ID est actuellement manquant sur mobile, mais cela sera corrigé lorsque ceci sera fusionné.