Неожиданное масштабирование в экспериментальном компоненте PhotoSwipeLightbox нарушает пропорции исходного изображения

@davidb Похоже, что в одном из последних коммитов компонента lightbox есть ошибка, из-за которой компонент не запускается в Discourse Solved и подобных местах после слияния моего PR.

Проблема может быть связана с этим коммитом:

FEATURE: allow quoting an image from the lightbox by SamSaffron · Pull Request #36156 · discourse/discourse · GitHub.

Я не до конца уверен, действительно ли этот PR вызывает сбой.

Воспроизвести ошибку можно прямо сейчас здесь:

Например, нажав на [IMG_6085] в цитате onebox или открыв ссылку и кликнув по изображению ответа в компоненте Discourse Solved на указанной странице. Изначальное поведение — открытие lightbox, но сейчас ничего не происходит.

В консоли отображается ошибка: Uncaught TypeError: Cannot read properties of null (reading 'getAttribute').

Связанный код:

// это гарантирует, что обрезанные изображения (например, в сетке) не вызовут дрожания при закрытии
data.thumbCropped = true;

data.src = data.src || el.getAttribute("data-large-src");
-> data.origSrc = imgEl.getAttribute("data-orig-src");
data.title = el.title || imgEl.alt || imgEl.title;

Возможно, изменение кода следующим образом решит проблему:

data.origSrc = imgEl?.getAttribute("data-orig-src") || el.getAttribute("data-orig-src") || null;

data.base62SHA1 =
    imgEl?.getAttribute("data-base62-sha1") || el.getAttribute("data-base62-sha1") || null;

data.targetWidth =
    el.getAttribute("data-target-width") || imgEl?.getAttribute("width") || null;
data.targetHeight =
    el.getAttribute("data-target-height") || imgEl?.getAttribute("height") || null;

Исправление через PR уже применено здесь:

2 лайка