GeotrekCE/Geotrek-rando-v3

Erreur quand ajout de javascript dans scriptsFooter.html

pnrma opened this issue · 3 comments

L'ajout de javascript dans le fichier prévu à cet effet scriptsFooter.html occasionne l'erreur :

nodeserver_1  | TypeError: scriptsFooter is not iterable
nodeserver_1  |     at useExternalsScripts (/app/src/.next/server/chunks/173.js:255:12)
nodeserver_1  |     at Layout (/app/src/.next/server/pages/_app.js:837:129)
nodeserver_1  |     at Wc (/app/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:68:44)
nodeserver_1  |     at Zc (/app/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:70:253)
nodeserver_1  |     at Z (/app/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89)
nodeserver_1  |     at Zc (/app/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:74:209)
nodeserver_1  |     at Z (/app/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89)
nodeserver_1  |     at Zc (/app/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:70:481)
nodeserver_1  |     at Z (/app/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89)
nodeserver_1  |     at $c (/app/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)

Contenu de test du fichier scriptsFooter.html :

<script>
  console.log("hello");
</script>

Testé sur la version 3.17.0.

L'ajout de scripts fonctionne sur la version 3.15.3 (non testé sur les versions intermédiaires).

Effectivement je constate que c'est une regression depuis la 3.15.4.

TL;DR: Le fichier script (header ou footer) renvoit un tableau des noeuds, mais s'il n'y en qu'un seul, il renvoie le noeud sans l'insérer dans tableau comme suivant.

{
  "type": "script",
  "key": "0",
  "ref": null,
  "props": {
    "dangerouslySetInnerHTML": {
      "__html": "\n  console.log('hello')\n"
    },
    "children": null
  },
}

J'ai mis du temps à reproduire car mon éditeur de texte rajoute automatiquement un saut de ligne (et donc transforme la donnée en tableau). Le temps de fixer je te propose d'insérer un saut de ligne et ça règlera ton problème

[
  {
    "type": "script",
    "key": "0",
    "ref": null,
    "props": {
      "dangerouslySetInnerHTML": {
        "__html": "\n  console.log('hello')\n"
      },
      "children": null
    },
  },
  "\n"
]

Je confirme que l'ajout d'un saut ligne a corrigé l'erreur.
Merci.

Corrigé depuis la version v3.17.1.