Отладка API изменения страницы после миграции

Пожалуйста, помогите перенести это из области настройки темы в админ-панели на вкладку JS в интерфейсе администратора:

<script type="text/discourse-plugin" version="0.8.19">
<script type="text/discourse-plugin" version="0.8.19">
api.onPageChange(() => {
	if ( window.location.href === "https://apple.com/123" ) {
		window.location.replace( "https://dell.com/234" );
	}
});
</script>

Я изучаю пример:

export default apiInitializer((api) => {
  // Ваш код здесь
});

и это отлично сработало, например, для api.renderInOutlet, но для onPageChange я не смог найти обновлённых примеров.

А что, если переместить это:

api.onPageChange(() => {
	if ( window.location.href === "https://apple.com/123" ) {
		window.location.replace( "https://dell.com/234" );
	}
});

в

[quote=“mattyoung, post:1, topic:398132”]
// Ваш код здесь
[/quote]?

ха. вы же издеваетесь, верно? да, я сразу попробовал это. не сработало.

вот что помогло:

import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.0", (api) => {
api.onPageChange((url) => {
// url обычно представляет собой путь
// но в некоторых контекстах это может быть полный URL, поэтому мы обрабатываем оба варианта.
const path = url?.startsWith("http") ? new URL(url).pathname : url;
if (path === "/123") {
      window.location.replace("https://dell.com/234");
}
});

Прошу прощения. Я неправильно понял ваш вопрос.

Мне интересно — в каких именно ситуациях? Я никогда раньше не видел https в URL, потому что, насколько я помню, onPageChange предназначен для путей Ember.

Привет! Просто для порядка я переместил это из оригинальной ветки с заметками о выпуске в новую тему, чтобы немного навести порядок и улучшить видимость. Удачи :+1:

Однако я заметил, что в вашем более позднем примере вы больше не проверяете window.location.href. Не в этом ли проблема?