Então, eu já sei que /my/billing/subscriptions é uma maneira de vincular o usuário atual ao seu próprio perfil de usuário, especificamente à seção de faturamento que vem com o Discourse Subscriptions. No entanto, isso não parece estar funcionando no meu código abaixo, com a expressão dentro do if. Em particular, estou tentando fazer com que um botão apareça apenas na página de faturamento do usuário. Na verdade, parece que não funciona para nenhuma URL no formato /my, seja faturamento, preferências, atividades ou qualquer outra coisa. Estou fazendo algo errado? O que devo usar? (Lembre-se de que isso só não está funcionando dentro do if. Caso contrário, usar /my tem funcionado bem.)
Isso não é porque os usuários nunca estão em URLs /my/*, já que elas são apenas um redirecionamento inteligente?
Por exemplo, /my/preferences me redirecionará para /u/falco/preferences, então eu nunca estarei na página /my/preferences para que o if no seu código seja acionado.
EDIT: Então, usando console.log, consegui descobrir que, em geral, essa abordagem funciona bem. Por exemplo, se eu apenas colocar o código
const user = api.getCurrentUser()
console.log("/u/" + user.username + "/billing/subscriptions")
em um script, recebo de volta o desejado /u/Miles/billing/subscriptions.
No entanto, o problema ocorre quando tento colocar isso dentro de setupComponent(args, component) {}. Assim que faço isso, o console.log não mostra mais nada. Ainda não tenho certeza do que estou fazendo errado…
Eu pensei isso, porque já há o uso de api.onPageChange(url) sendo executado sem problemas. Note que estou adaptando o código de aqui, então parece ser realmente verdade que tenho acesso ao objeto api no método setupComponent.
Apenas para maior esclarecimento, aqui está o que consegui até agora: