В версиях Discourse до 2.8.0.beta5, если вы редактируете тему и нажимаете на раскрывающийся список выбора категории, текущая категория одновременно выделяется и прокручивается в списке категорий так, чтобы она сразу была видна вверху, а её подкатегории (если есть) также отображались. Это позволяло легко переместить тему в более подходящую подкатегорию.
Работа в версиях 2.8.0.beta4 и ранее:
Начиная с версии 2.8.0.beta5, при открытии раскрывающегося списка выбора категории прокрутка к текущей категории больше не выполняется:
Надеюсь, эти короткие видео-демонстрации помогут быстро показать то, что я пытаюсь описать.
Примечание: в моих примерах включены опции «фиксированные позиции категорий» и «фиксированные позиции категорий при создании», однако поведение прокрутки к текущей категории отсутствует независимо от того, включены эти опции или выключены.
Я подтвердил это в локальной разработке, установив версию 2.8.0.beta4 и наблюдая желаемое поведение, а затем обновившись до версии 2.8.0.beta5, где это поведение перестало работать.
Я изучил код, пока не нашёл, что изменение произошло в большом коммите, связанном с select-kit.js (подождите немного, и страница должна перейти к соответствующим строкам кода):
Из метода _scrollToRow(), который вызывается методом _scrollToCurrent(), был удалён следующий код:
if (rowContainer) {
const collectionContainer = rowContainer.parentNode;
collectionContainer.scrollTop =
rowContainer.offsetTop - collectionContainer.offsetTop;
}
Я подтвердил, что добавление этого кода обратно в select-kit.js в версии 2.8.0.beta5 решает проблему, однако, поскольку мне неясно, почему он был удалён, я не уверен в возможных побочных эффектах его возврата.
Спасибо за внимание к этой проблеме, и надеюсь, что мы сможем восстановить это поведение в одном из будущих релизов.