Компонент темы, содержащий веб-компонент, изменяющий якорь URL поста, приводит к зависанию браузера

Всем привет,

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

При клике на операцию в веб-компоненте браузер иногда зависает, и мне сложно понять, что происходит. Помогает только закрытие вкладки. С той же версией RapiDoc и той же спецификацией OpenAPI, но встроенными в другие страницы, такой проблемы не возникает.

Суть в том, что компонент добавляет идентификатор операции как якорь в URL, например: _https://my-site/t/my-topic/150#post-/clusters/-clusterID-/gateway. Я предполагаю, что где-то есть слушатель изменений URL, который в данном случае не справляется, возможно, потому что веб-компонент ещё не полностью отрендерен и/или идентификатор не найден в теневом DOM.

В консоли я увидел следующее:

Promise Rejection: SyntaxError: '#main #put-/clusters/-clusterID-/appliances/-applianceID-/constraints, a[name=put-/clusters/-clusterID-/appliances/-applianceID-/constraints]' is not a valid selector.

Вставленный элемент с идентификатором, соответствующим якорю в URL, выглядит так:

<section 
  part="section-endpoint" 
  id="patch-/clusters/-clusterID-" 
  class="m-endpoint regular-font patch collapsed">

Подскажите, пожалуйста, с чего начать, чтобы разобраться в сути проблемы?

Огромное спасибо!

Отвечаю на свой собственный вопрос: Похоже, это вообще не имело отношения к Discourse.
Определенная комбинация параметров загнала веб-компонент в цикл scheduleUpdate.
Извините за шум.

Для справки, вот что я сделал:

  • Использовал неминифицированную версию rapidoc в компоненте темы
  • Запустил отладчик, пока сайт завис
  • Изучил стек вызовов и нашел виновника, вызывающего повторяющиеся обновления (show-curl-before-try)
  • Изменил параметры rapidoc, чтобы больше не провоцировать эту ситуацию

Если вы считаете, что эта тема не добавляет ничего к обсуждению или неактуальна, пожалуйста, удалите её.

Спасибо в любом случае и еще раз извините за шум.