خطأ Glimmer-site-header.gjs:144 getBoundingClientRect فقط عند تمكين المكون الإضافي المخصص

مرحباً،

على إصدار 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:
    • لا يتطرق المكون الإضافي إلى الرأس أبدًا؛ إنه يضيف مكونات فقط عبر الموصلات (connectors):
      • discovery-list-area/…
      • below-site-header/…
      • below-main-outlet/…
  • حاولت إنشاء عنصر .d-header وهمي بشكل دفاعي في تهيئة المكون الإضافي إذا لم يكن موجودًا، لكن الخطأ لا يزال يحدث.
  • في الصفحات التي يتم فيها إطلاق الخطأ، يُرجع document.querySelector('.d-header') عنصرًا.

الأسئلة:

  1. تحت أي ظروف يمكن لـ glimmer-site-header استدعاء element.getBoundingClientRect() على قيمة null؟
  2. هل هناك أي شيء مميز بخصوص استخدام الموصل below-site-header أو إضافة فئات (classes) إلى الجسم (body) يمكن أن يتداخل مع مكون الرأس الجديد؟
  3. هل هناك طريقة موصى بها للمكونات الإضافية للتواجد بأمان مع glimmer-site-header حتى لا يحدث هذا الوصول إلى قيمة null؟

أي إشارات أو مشكلات معروفة حول هذا ستكون مفيدة للغاية.