Composant de thème contenant un composant Web qui modifie l'ancre de l'URL du post bloque le navigateur

Salut tout le monde,

J’ai volé le joli composant de thème de sirène et je l’ai modifié pour inclure RapiDoc en tant que composant Web. Il permet de rendre les spécifications OpenAPI.

Lorsque l’on clique sur une opération dans le composant Web, cela bloque parfois le navigateur et j’ai du mal à comprendre ce qui se passe.
Seule la fermeture de l’onglet aide. Cela ne se produit pas avec la même version de RapiDoc et la même spécification OpenAPI lorsqu’elle est intégrée dans d’autres pages.

Ce qu’il fait, c’est qu’il ajoute l’ID de l’opération comme une ancre à l’URL, par exemple _https://my-site/t/my-topic/150#post-/clusters/-clusterID-/gateway. Je suppose qu’il y a quelque chose qui écoute les changements d’URL qui échoue dans ce cas, peut-être parce que le composant Web n’est pas encore entièrement rendu et/ou que l’ID ne peut pas être trouvé dans le DOM fantôme.

J’ai vu ceci dans la 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’élément inséré portant l’ID correspondant à l’ancre dans l’URL ressemble à ceci.

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

Quelqu’un a-t-il des pistes pour m’aider à trouver le cœur du problème ?

Merci beaucoup !

Je réponds à ma propre question : il semble que cela n’ait rien à voir avec Discourse après tout.
Une certaine combinaison de paramètres a mis le composant Web dans une boucle scheduleUpdate.
Désolé pour le bruit.

Pour référence, voici ce que j’ai fait :

  • Utilisé une version non minifiée de rapidoc dans le composant de thème
  • Utilisé le débogueur pendant que le site était bloqué
  • Regardé la pile d’appels et trouvé le coupable déclenchant des mises à jour répétées (show-curl-before-try)
  • Modifié les paramètres de rapidoc pour ne plus déclencher ce scénario

Si vous estimez que ce sujet n’apporte rien à la discussion/est non pertinent, n’hésitez pas à le supprimer.

Merci quand même et désolé encore pour le bruit.

2 « J'aime »

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