Il componente tema che contiene un web component che modifica l'ancora dell'URL del post blocca il browser

Ciao a tutti,

Ho rubato il bel componente a tema mermaid e l’ho modificato per includere RapiDoc come componente web. Permette di renderizzare specifiche OpenAPI.

Quando si fa clic su un’operazione nel componente web, a volte blocca il browser e ho difficoltà a capire cosa sta succedendo.
Solo la chiusura della scheda aiuta. Questo non accade con la stessa versione di RapiDoc e la stessa specifica OpenAPI quando incorporata in altre pagine.

Ciò che fa è aggiungere l’ID dell’operazione come ancora all’URL, ad esempio _https://my-site/t/my-topic/150#post-/clusters/-clusterID-/gateway. Suppongo ci sia qualcosa in ascolto dei cambiamenti dell’URL che fallisce in questo caso, forse perché il componente web non è ancora completamente renderizzato e/o l’ID non può essere trovato nel shadow DOM.

Ho visto quanto segue sulla console:

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

L’elemento inserito che porta l’ID corrispondente all’ancora nell’URL assomiglia a questo.

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

Qualcuno ha qualche suggerimento per aiutarmi a capire il nocciolo del problema?

Grazie mille!

Rispondendo alla mia domanda: Sembra che non avesse nulla a che fare con Discourse, dopotutto.
Una certa combinazione di parametri ha mandato il componente web in un loop di scheduleUpdate.
Scusate per il disturbo.

Per riferimento, ecco cosa ho fatto:

  • Usato una versione non minificata di rapidoc nel componente del tema
  • Usato il debugger mentre il sito era bloccato
  • Guardato lo stack di chiamate e trovato il colpevole che attivava aggiornamenti ripetuti (show-curl-before-try)
  • Modificato i parametri di rapidoc per non attivare più questo scenario

Se ritenete che questo argomento non aggiunga alla discussione/sia irrilevante, sentitevi liberi di rimuoverlo.

Grazie comunque e scusate ancora per il disturbo.

2 Mi Piace

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