こんにちは。
最近のDiscourse(Ember 6.6.0)で、カスタムプラグインを有効にした場合にのみ、ブラウザのコンソールでこのエラーが発生しています。
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)
...
これまでに試したこと:
- すべてのカスタムプラグインを無効にした場合 → エラーなし。
- 私のプラグインのみを有効にした場合(デフォルトテーマ上) → エラーが発生。
- プラグイン内で d-header、site-header、glimmer-site-header、getBoundingClientRect を検索したところ:
- プラグインはヘッダーには一切触れていません。コネクタ経由でコンポーネントを追加しているだけです。
- discovery-list-area/…
- below-site-header/…
- below-main-outlet/…
- プラグインはヘッダーには一切触れていません。コネクタ経由でコンポーネントを追加しているだけです。
- プラグインのイニシャライザで、存在しない場合にスタブの
.d-header要素を防御的に作成しようとしましたが、エラーは依然として発生します。 - エラーが発生するページでは、
document.querySelector('.d-header')は要素を返します。
質問:
glimmer-site-headerはどのような条件下でelement.getBoundingClientRect()を null に対して呼び出す可能性がありますか?below-site-headerコネクタの使用や、ボディクラスの追加で、新しいヘッダーコンポーネントと干渉する可能性のある特別なことはありますか?- この null アクセスが発生しないように、プラグインが
glimmer-site-headerと安全に共存するための推奨される方法はありますか?
何かヒントや、これに関する既知の問題があれば、大変助かります。