У нас возникла проблема: меню в заголовке бренда в верхнем левом углу на мобильных устройствах раскрывается лишь частично при нажатии. Мы настроили его так, чтобы панель не отображалась на мобильных. Если просто нажать на гамбургер-меню, оно выглядит так.
Насколько я могу судить, menu-panel и slide-in не происходят из нашей темы. Но похоже, что slide-in важен для корректной работы. Почему класс slide-in не добавляется при открытии меню? Почему изменение размера окна браузера заставляет его внезапно добавиться?
Мне не пришлось изменять размер, чтобы получить это, и при изменении размера класс slide-in вообще не появляется…
Похоже, что у вас установлена версия Discourse 3.2, а не текущая версия 3.3. Для этого компонента есть обновления, зависящие от версии 3.3, поэтому вы их сейчас не получаете.
Возможно, обновление Discourse и компонента решит все ваши проблемы, но если нет, то может быть конфликт с другими настройками.
Вы правы, мы используем Discourse 3.2.3. Мне казалось, что из этого поста следует, что проблема существует и в версии 3.3, но у вас всё выглядит хорошо. Я проверю, возможно ли нам обновиться до версии 3.3 или, возможно, установить более старую версию компонента brand-header.
Опубликовано ли где-либо, что компонент требует версию 3.3? Я нигде этого не вижу.
Не знаете ли вы, когда были внесены обновления, зависящие от версии 3.3? Или какая последняя версия работает с 3.2?
Это не указано явно, но иногда при выпуске обновлений, когда мы полагаемся на новую функцию Discourse, мы фиксируем тему компонента на старой версии Discourse, чтобы предотвратить получение несовместимых обновлений.
Когда это делается, подробности указываются в файле .discourse-compatibility:
После этого изменения код компонента был полностью переписан из-за изменений в работе заголовка в Discourse.
Я думаю, что это поднимает хороший вопрос, который нам стоит рассмотреть: эта информация довольно скрыта и технически сложна. Возможно, мы могли бы добавить сообщение в панель администратора о том, что некоторые компоненты перестали получать обновления, потому что для них требуются функции из последней версии Discourse.
Я сделал форк компонента, откатил его до коммита 12e6f76 и установил эту версию на наш форум, но проблема всё ещё сохраняется. Разве это не должно было её исправить?
Должно быть, я что-то неправильно понимаю. Раньше у нас не было такой проблемы. В какой-то момент проблема возникла из-за того, что компонент внес изменения, требующие версии Discourse 3.3, и мы обновили компонент, но при этом всё ещё используем Discourse 3.2. Верно? Если да, то разве самое простое решение — откатиться к последней версии компонента, которая работает с Discourse 3.2?
Компонент не должен был получить эти изменения для версии 3.3. Когда компонент зафиксирован на конкретной версии Discourse, он фактически остаётся в текущем состоянии до тех пор, пока не будет обновлён сам Discourse.
Вам не следует этого делать… фиксация должна автоматически оставлять компонент на последней совместимой версии, но возможно, эта ошибка уже существовала в той версии компонента, которую вы используете.
Теперь я понимаю… хитро. Можно ли с уверенностью предположить, что разработчик не приложит никаких усилий, чтобы компонент корректно работал с версией 3.2?
Я создал копию форума и обновился до версии 3.3, и да, это действительно решает проблему. Я уточняю у нашего администратора, возможно ли обновить работающий форум до версии 3.3.
Да, к сожалению, у нас есть ресурсы только для поддержки тематических компонентов в последней версии Discourse, поэтому с более старыми версиями такое время от времени случается.