Ajouter un widget externe à composer

J’ai essayé et j’ai obtenu des résultats similaires. J’ai essayé d’utiliser decorateCookedElement car nous allons éventuellement déprécier decorateCooked.

 api.decorateCookedElement(
    (element) => {
      element.childNodes.forEach((node) => {
        if (node.dataset && node.dataset.pawidget) {
          node.insertAdjacentHTML(
            "beforeend",
            "<div id='PurpleAirWidget_11726_module_AQI_conversion_C0_average_0_layer_standard'>Loading PurpleAir Widget...</div>"
          );

          loadScript(
            `https://www.purpleair.com/pa.widget.js?key=${node.dataset.pawidget}&module=AQI&conversion=C0&average=0&layer=standard&container=PurpleAirWidget_11726_module_AQI_conversion_C0_average_0_layer_standard`
          );
        }
      });
    },
    { id: "widget-append", onlyStream: true, afterAdopt: true }
  );

La légère différence ici est que j’ai passé la clé avec l’attribut de données :

<div data-PAWidget="21R72LUN79CXRZ50"></div>

Cela fonctionne bien pour moi si c’est la première fois que le script est chargé. Si je consulte un message avec le script, puis que je reviens à la liste des sujets et que je ré-entre dans le sujet, cela ne fonctionne pas (jusqu’à ce que je rafraîchisse). Je peux voir que decorateCookedElement est déclenché à chaque fois que le message pertinent est chargé, mais quelque chose empêche le script de fonctionner à nouveau.

Je ne suis pas sûr si c’est lié, mais je vois aussi une erreur Uncaught TypeError: i is null dans la console provenant de pa.widget.js :

Screen Shot 2021-11-08 at 9.11.39 PM