Изображения в расширенном чате не открываются после публикации сообщения с картинкой

Шаги воспроизведения:

1. Увеличьте размер окна чата:

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

ИЛИ

2.2. Получите такое сообщение от других участников чата.

3. Кликните на изображение. Оно не откроется.

Обходное решение:

4. Обновите страницу в браузере.

5. Кликните на изображение — теперь должно открыться всплывающее окно с изображением большего размера.

2 лайка

Это недавняя регрессия, насколько мне известно?

1 лайк

Да, я тоже видел это сегодня. Почти наверняка это недавний регресс.

1 лайк

Я думаю, проблема здесь:

api.decorateChatMessage(
      (element) =>
        lightbox(element.querySelectorAll("img:not(.emoji, .avatar)")),
      {
        id: "lightbox",
      }
    );

Ранее api.decorateChatMessage передавал элемент .chat-message-container:

Теперь он передаёт элемент .chat-cooked:

Поскольку изображения определены внутри chat-message-collapser-body, lightbox не может найти их здесь.

Внесённые изменения: DEV: Refactor chat HTML decorating (#31309) · discourse/discourse@a0f681b · GitHub

5 лайков

Да, извините, вы этого не видите — это шепот, но я уже уведомил об этом @david. Я также считаю, что это связано с недавним изменением.

Спасибо, что проверили. У меня пока не было времени подтвердить свою теорию :+1:

4 лайка

Спасибо @meglio и @Arkshine!

Ограничение обычного «украшения готового» только содержимым сообщения было сделано намеренно. Однако мы добавили специальную логику для лайтбокса, которая должна была обрабатывать изображения. Похоже, она не учитывала случай, когда исходное изображение заменяется на оптимизированную версию.

Исправление здесь:

7 лайков

Эта тема была автоматически закрыта через 21 час. Новые ответы больше не принимаются.