Помощь с перенаправлением пользователя на контент по подписке

Продолжение обсуждения из темы Gated Topics in Category:

Я пытался изменить компонент гайд-блока, чтобы перенаправлять пользователя на конкретную страницу вместо отображения «ворот».

1
Я попробовал DiscourseURL.routeTo('/t/table-builder-test-2/1667') в Theme Creator — это работает, но занимает время и вызывает ошибки при загрузке, хотя страница успешно открывается.

2
Также я пробовал использовать setDefaultHomepage('/t/table-builder-test-2/1667'); и

      const container = Discourse.__container__;
      const router = container.lookup("router:main");

      let topicId = router.currentRoute.parent.params.id

      PreloadStore.remove(`topic/${topicId}`);

Перенаправление происходит только после загрузки страницы с «воротами», если нажать кнопку «Назад».

3
location.href = '/t/table-builder-test-2/1667'

Это работает, но страницы с «воротами» всё равно загружаются на несколько секунд, в отличие от варианта 1, который работает плавно.

Какой способ будет лучшим для достижения этой цели?

Моя тема Custom Homepage меняет главную страницу. Суть в том, что некоторые элементы предварительно загружаются, и вам нужно что-то сделать, чтобы они исчезли.

Надеюсь, вы сможете найти пример в коде, так как это лучшее объяснение, которое я могу дать с телефона. :person_shrugging:

Я пробовал так:

let topicId = router.currentRoute.parent.params.id
PreloadStore.remove(`topic/${topicId}`);

но это не сработало. Есть ли документация о том, как работает метод PreloadStore.remove?