Fix broken image when editing comment with non-image attachments (#32319) (#32345)
Some checks failed
release-nightly / disk-clean (push) Has been cancelled
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-docker-rootful (push) Has been cancelled
release-nightly / nightly-docker-rootless (push) Has been cancelled

Backport #32319 

Fix #32316

---------

Co-authored-by: yp05327 <576951401@qq.com>
This commit is contained in:
Lunny Xiao 2024-11-01 22:34:09 -07:00 committed by GitHub
parent 898f852d03
commit a3b7b98336
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 2 deletions

View File

@ -4,6 +4,7 @@ import {getComboMarkdownEditor, initComboMarkdownEditor} from './comp/ComboMarkd
import {createDropzone} from './dropzone.js'; import {createDropzone} from './dropzone.js';
import {GET, POST} from '../modules/fetch.js'; import {GET, POST} from '../modules/fetch.js';
import {hideElem, showElem} from '../utils/dom.js'; import {hideElem, showElem} from '../utils/dom.js';
import {isImageFile} from '../utils/image.js';
import {attachRefIssueContextPopup} from './contextpopup.js'; import {attachRefIssueContextPopup} from './contextpopup.js';
import {initCommentContent, initMarkupContent} from '../markup/content.js'; import {initCommentContent, initMarkupContent} from '../markup/content.js';
@ -84,10 +85,12 @@ async function onEditContent(event) {
for (const attachment of data) { for (const attachment of data) {
const imgSrc = `${dropzone.getAttribute('data-link-url')}/${attachment.uuid}`; const imgSrc = `${dropzone.getAttribute('data-link-url')}/${attachment.uuid}`;
dz.emit('addedfile', attachment); dz.emit('addedfile', attachment);
dz.emit('thumbnail', attachment, imgSrc); if (isImageFile(attachment.name)) {
dz.emit('thumbnail', attachment, imgSrc);
dropzone.querySelector(`img[src='${imgSrc}']`).style.maxWidth = '100%';
}
dz.emit('complete', attachment); dz.emit('complete', attachment);
fileUuidDict[attachment.uuid] = {submitted: true}; fileUuidDict[attachment.uuid] = {submitted: true};
dropzone.querySelector(`img[src='${imgSrc}']`).style.maxWidth = '100%';
const input = document.createElement('input'); const input = document.createElement('input');
input.id = attachment.uuid; input.id = attachment.uuid;
input.name = 'files'; input.name = 'files';

View File

@ -45,3 +45,7 @@ export async function imageInfo(blob) {
return {width, dppx}; return {width, dppx};
} }
export function isImageFile(name) {
return /\.(jpe?g|png|gif|webp|svg|heic)$/i.test(name);
}