reopenWidget вызывает ошибку

Я пытаюсь разобраться с reopenWidget() из Руководства для начинающих по разработке тем Discourse, и когда я пытаюсь создать компонент темы с использованием примера сниппета home-logo, получаю ошибку Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'offsetHeight'), из-за чего нарушается разметка страницы. Что-то изменилось в том, как использовать reopenWidget, или я что-то упускаю?

Не могли бы вы поделиться фрагментом кода, с которым у вас возникли проблемы?

Дело вот в чём:

<script type="text/discourse-plugin" version="0.8.13">
api.reopenWidget("home-logo", {
  logo() {
    const { siteSettings } = this,
      { iconNode } = require("discourse/helpers/fa-icon-node"),
      h = require("virtual-dom").h,
      altLogo = settings.Alternative_logo_url,
      altLogoSmall = settings.Alternative_small_logo_url,
      mobileView = this.site.mobileView,
      mobileLogoUrl = siteSettings.mobile_logo_url || "",
      showMobileLogo = mobileView && mobileLogoUrl.length > 0;
    (logoUrl = altLogo || ""),
    (title = siteSettings.title);
    if (!mobileView && this.attrs.minimized) {
      const logoSmallUrl = altLogoSmall || "";
      if (logoSmallUrl.length) {
        return h("img#site-logo.logo-small", {
          key: "logo-small",
          attributes: { src: logoSmallUrl, width: 33, height: 33, alt: title }
        });
      } else {
        return iconNode("home");
      }
    } else if (showMobileLogo) {
      return h("img#site-logo.logo-big", {
        key: "logo-mobile",
        attributes: { src: mobileLogoUrl, alt: title }
      });
    } else if (logoUrl.length) {
      return h("img#site-logo.logo-big", {
        key: "logo-big",
        attributes: { src: logoUrl, alt: title }
      });
    } else {
      return h("h1#site-text-logo.text-logo", { key: "logo-text" }, title);
    }
  }
});
</script>

Я скопировал этот код в точности из примера в Руководстве для начинающих по reopenWidget, ничего не меняя, и вставил его в новый компонент темы, где больше ничего нет. (Я также дважды проверил, что код размещён в разделе Header).

У меня установлены ещё несколько компонентов темы, но ни один из них не затрагивает home-logo. Я использую базовый хостинг, если это имеет значение. Я думал, что проблема может быть в том, что у меня не загружено тёмное лого, но ошибка возникает даже после загрузки тёмного логотипа.

К сожалению, здесь всё меняется очень быстро.

Основная проблема, скорее всего, в том, что вы скопировали код из руководства, вместо того чтобы следовать инструкциям.

Вот сравнение кода, который вы только что поделили, с текущим исходным кодом:

То есть они очень отличаются! (а значит, скорее всего, вызовут ошибки!)

Вам нужно сделать следующее (как указано в инструкциях): перейти к исходному коду, скопировать актуальную версию и изменить её под свои нужды.

Другими словами, код в руководстве устарел, хотя сами инструкции всё ещё актуальны.

Понял, спасибо! Это мой первый опыт работы с Discourse или Ember, поэтому я еще только разбираюсь. Я пробовал использовать reopenWidget с другой функцией, скопированной из текущего исходного кода, но у меня не получилось заставить это работать, но я попробую еще немного поиграть с настройками.