El componente de tema que contiene un web component que modifica el ancla de la URL de la publicación congela el navegador

Hola a todos,

Robé el componente de tema de sirena y lo modifiqué para incluir RapiDoc como un componente web. Permite renderizar especificaciones OpenAPI.

Al hacer clic en una operación en el componente web, a veces congela el navegador y me cuesta averiguar qué está sucediendo.
Solo cerrar la pestaña ayuda. Esto no sucede con la misma versión de RapiDoc y la misma especificación OpenAPI cuando se incrusta en otras páginas.

Lo que hace es agregar el id de la operación como un ancla a la URL, por ejemplo, _https://my-site/t/my-topic/150#post-/clusters/-clusterID-/gateway. Supongo que hay algo escuchando los cambios en la URL que falla en este caso, tal vez porque el componente web aún no está completamente renderizado y/o el ID no se puede encontrar en el shadow DOM.

Vi lo siguiente en la consola:

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

El elemento insertado que lleva el ID correspondiente al ancla en la URL se ve así.

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

¿Alguien tiene alguna indicación para que pueda llegar al fondo del problema?

¡Muchas gracias!

Respondiendo a mi propia pregunta: Parece que no tuvo nada que ver con Discourse después de todo.
Una cierta combinación de parámetros envió el componente web a un bucle de scheduleUpdate.
Disculpen el ruido.

Como referencia, esto es lo que hice:

  • Usé una versión no minimizada de rapidoc en el componente temático
  • Usé el depurador mientras el sitio estaba atascado
  • Miré la pila de llamadas y encontré el culpable que activaba actualizaciones repetidas (show-curl-before-try)
  • Cambié los parámetros de rapidoc para que no activaran este escenario más

Si sienten que este tema no aporta a la discusión/es irrelevante, siéntanse libres de eliminarlo.

Gracias de todos modos y disculpen nuevamente el ruido.

2 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.