Estou tentando rastrear o login de usuários no fórum de nosso cliente. Basicamente, gostaria de criar um ouvinte de eventos (em JavaScript puro) que execute uma função JavaScript toda vez que um usuário fizer login no fórum.
Você pode usar algo como isto na aba common > header de um componente de tema.
<script type="text/discourse-plugin" version="0.8">
const user = api.getCurrentUser();
// o usuário já está logado, saia
if (user) {
return;
}
// faça seu trabalho aqui...
const clickCallback = (clickEvent) => {
console.log(clickEvent);
alert("o usuário está fazendo login");
// ..
// ..
};
api.onAppEvent("modal:body-shown", (event) => {
const loginButton = document.querySelector("#login-button");
if (loginButton) {
loginButton.addEventListener("click", clickCallback, { once: true });
}
});
</script>
Adicione qualquer código que você precisar na função clickCallback, e ela será acionada quando o usuário clicar no botão Login dentro do modal. Esse id está atualmente faltando no mobile, mas isso será corrigido quando isto for mesclado.