Bonjour,
Sur une version récente de Discourse (Ember 6.6.0), je reçois cette erreur dans la console du navigateur, mais uniquement lorsque mon plugin personnalisé est activé :
glimmer-site-header.gjs:144 Uncaught TypeError: Cannot read properties of null (reading 'getBoundingClientRect')
at recalculateHeaderOffset (glimmer-site-header.gjs:144)
at setupHeader (glimmer-site-header.gjs:212)
...
Ce que j’ai fait jusqu’à présent :
- Avec tous les plugins personnalisés désactivés → pas d’erreur.
- Avec seulement mon plugin activé (sur le thème par défaut) → l’erreur apparaît.
- Recherche dans le plugin de d-header, site-header, glimmer-site-header, getBoundingClientRect :
- Le plugin ne touche jamais l’en-tête ; il ajoute uniquement des composants via des connecteurs :
- discovery-list-area/…
- below-site-header/…
- below-main-outlet/…
- Le plugin ne touche jamais l’en-tête ; il ajoute uniquement des composants via des connecteurs :
- J’ai essayé de créer de manière défensive un élément .d-header de substitution dans l’initialiseur du plugin si aucun n’existe, mais l’erreur se produit toujours.
- Sur les pages où l’erreur se déclenche,
document.querySelector('.d-header')renvoie un élément.
Questions :
- Dans quelles conditions
glimmer-site-headerpeut-il finir par appelerelement.getBoundingClientRect()surnull? - Y a-t-il quelque chose de spécial à utiliser le connecteur
below-site-headerou à ajouter des classes au corps (body) qui pourrait interférer avec le nouveau composant d’en-tête ? - Existe-t-il une méthode recommandée pour que les plugins coexistent en toute sécurité avec
glimmer-site-headerafin que cet accès ànullne puisse pas se produire ?
Toute indication ou tout problème connu à ce sujet serait très utile.