Итак, я уже знаю, что /my/billing/subscriptions — это путь для связывания текущего пользователя с его профилем, в частности, с разделом выставления счетов, который доступен в Discourse Subscriptions. Однако в моём коде ниже это, похоже, не работает, особенно в выражении внутри оператора if. Я пытаюсь сделать так, чтобы кнопка отображалась только на странице выставления счетов пользователя. На самом деле, похоже, что это не работает ни для одного URL вида /my, будь то billing, preferences, activity или что-то ещё. Я что-то делаю не так? Что мне следует использовать? (Имейте в виду, что проблема возникает только в операторе if. В остальном использование /my работает и работало нормально.)
Разве это не потому, что пользователи никогда не оказываются на URL-адресах вида /my/*, поскольку это просто умная перенаправление?
Например, /my/preferences перенаправит меня на /u/falco/preferences, поэтому я никогда не буду на странице /my/preferences, чтобы условие if в вашем коде сработало.
РЕДАКТИРОВАНИЕ: Итак, используя console.log, я смог выяснить, что в целом этот подход работает нормально. Например, если я просто помещу код
const user = api.getCurrentUser()
console.log("/u/" + user.username + "/billing/subscriptions")
в скрипт, я получу желаемый результат /u/Miles/billing/subscriptions.
Однако проблема возникает, когда я пытаюсь поместить это внутрь setupComponent(args, component) {}. Как только я это делаю, console.log перестает что-либо показывать. Всё ещё не уверен, что я делаю не так…
Я так и думал, потому что api.onPageChange(url) уже используется и работает без проблем. Обратите внимание, что я адаптирую код отсюда, поэтому, похоже, действительно верно, что у меня есть доступ к объекту api в методе setupComponent.
Для дальнейшего уточнения вот что у меня получилось на данный момент: