Контент в тегах Details вызывает пробелы при переходе вниз и прокрутке обратно вверх

Чтобы воспроизвести проблему на Meta:

  1. Перейдите к этому сообщению: Events Plugin 📅 - #433 by bletch
  2. Откройте раздел «Подробный лог из консоли Chrome» в этом сообщении.
  3. Нажмите на нижнюю дату на временной шкале, чтобы перейти к концу темы.
  4. Прокрутите обратно вверх к сообщению.
  5. Вы увидите огромное пустое пространство длиной в само сообщение, как будто спойлер открыт.
4 лайка

Это воспроизводится легко в 100% случаев, нужно прокручивать медленно.

Возникает из-за того, что последовательность скрытия/открытия в постах каким-то образом не учитывает спойлеры.

Я добавил сюда pr-welcome, было бы неплохо исправить это, но это будет довольно сложно.

@eviltrout, возможно, стоит уделить этому 2 минуты, на случай если с последовательностью скрытия/открытия происходит что-то более серьёзное, возможно, декораторы постов не срабатывают правильно на открытых постах?

4 лайка

Мне это кажется вполне очевидным.

Раскрытие поста сохранит его высоту на тот момент. Если вы развернули детали, высота изменится. При раскрытии используется ранее сохранённая высота, которая теперь неверна.

Думаю, для решения этой проблемы плагин details должен запоминать, что было развернуто, и при повторном рендеринге поста восстанавливать состояние открытия.

В противном случае это выглядит странно — почему Discourse сворачивает детали просто потому, что пост прокрутился за пределы видимости?

4 лайка