Ciao,
Su una recente versione di Discourse (Ember 6.6.0), sto riscontrando questo errore nella console del browser, ma solo quando il mio plugin personalizzato è abilitato:
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)
...
Cosa ho fatto finora:
- Con tutti i plugin personalizzati disabilitati → nessun errore.
- Con solo il mio plugin abilitato (sul tema predefinito) → l’errore appare.
- Ho cercato nel plugin d-header, site-header, glimmer-site-header, getBoundingClientRect:
- Il plugin non tocca mai l’header; aggiunge componenti solo tramite connettori:
- discovery-list-area/…
- below-site-header/…
- below-main-outlet/…
- Il plugin non tocca mai l’header; aggiunge componenti solo tramite connettori:
- Ho provato a creare in modo difensivo un elemento stub .d-header nell’inizializzatore del plugin se non esiste, ma l’errore si verifica comunque.
- Nelle pagine in cui viene attivato l’errore,
document.querySelector('.d-header')restituisce un elemento.
Domande:
- In quali condizioni
glimmer-site-headerpuò finire per chiamareelement.getBoundingClientRect()sunull? - C’è qualcosa di speciale nell’uso del connettore
below-site-headero nell’aggiunta di classi al corpo che potrebbe interferire con il nuovo componente header? - Esiste un modo consigliato per i plugin di coesistere in sicurezza con
glimmer-site-headerin modo che questo accesso anullnon possa verificarsi?
Qualsiasi suggerimento o problema noto a riguardo sarebbe molto utile.