From 7fc33af1e55d62ddf272f22edac89535863d918c Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Mon, 25 Mar 2024 11:09:17 -0400 Subject: [PATCH] fix: image resize tiff files (#5449) --- packages/payload/src/uploads/canResizeImage.ts | 2 +- packages/payload/src/uploads/generateFileData.ts | 2 +- packages/ui/src/hooks/useThumbnail.ts | 2 +- test/uploads/config.ts | 1 + test/uploads/e2e.spec.ts | 12 ++++++++++++ test/uploads/test-image.tiff | Bin 0 -> 644 bytes 6 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 test/uploads/test-image.tiff diff --git a/packages/payload/src/uploads/canResizeImage.ts b/packages/payload/src/uploads/canResizeImage.ts index c2a83c01f..cb3815c9d 100644 --- a/packages/payload/src/uploads/canResizeImage.ts +++ b/packages/payload/src/uploads/canResizeImage.ts @@ -1,3 +1,3 @@ export default function canResizeImage(mimeType: string): boolean { - return ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].indexOf(mimeType) > -1 + return ['image/jpeg', 'image/png', 'image/gif', 'image/webp', 'image/tiff'].indexOf(mimeType) > -1 } diff --git a/packages/payload/src/uploads/generateFileData.ts b/packages/payload/src/uploads/generateFileData.ts index ba9320ee0..e9cb186b6 100644 --- a/packages/payload/src/uploads/generateFileData.ts +++ b/packages/payload/src/uploads/generateFileData.ts @@ -132,7 +132,7 @@ export const generateFileData = async ({ } } - if (isImage(file.mimetype)) { + if (fileSupportsResize || isImage(file.mimetype)) { dimensions = getImageSize(file) fileData.width = dimensions.width fileData.height = dimensions.height diff --git a/packages/ui/src/hooks/useThumbnail.ts b/packages/ui/src/hooks/useThumbnail.ts index 92b6f3897..a397c614a 100644 --- a/packages/ui/src/hooks/useThumbnail.ts +++ b/packages/ui/src/hooks/useThumbnail.ts @@ -38,7 +38,7 @@ export const useThumbnail = ( return `${serverURL}/${thumbnailURL}` } - if (isImage(mimeType as string)) { + if (adminThumbnail || isImage(mimeType as string)) { if (typeof adminThumbnail === 'undefined' && url) { return url as string } diff --git a/test/uploads/config.ts b/test/uploads/config.ts index 2360c8b25..50ceb7261 100644 --- a/test/uploads/config.ts +++ b/test/uploads/config.ts @@ -287,6 +287,7 @@ export default buildConfigWithDefaults({ 'image/jpeg', 'image/gif', 'image/svg+xml', + 'image/tiff', 'audio/mpeg', ], imageSizes: [ diff --git a/test/uploads/e2e.spec.ts b/test/uploads/e2e.spec.ts index b7cc6a59f..e95302dcd 100644 --- a/test/uploads/e2e.spec.ts +++ b/test/uploads/e2e.spec.ts @@ -15,6 +15,7 @@ import { RESTClient } from '../helpers/rest.js' import { adminThumbnailSrc } from './collections/admin-thumbnail/RegisterThumbnailFn.js' import config from './config.js' import { adminThumbnailSlug, audioSlug, mediaSlug, relationSlug } from './shared.js' + const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) @@ -155,6 +156,17 @@ describe('uploads', () => { await expect(iconMeta).toContainText('16x16') }) + test('should resize and show tiff images', async () => { + await page.goto(mediaURL.create) + await page.setInputFiles('input[type="file"]', path.resolve(dirname, './test-image.tiff')) + + await expect(page.locator('.file-field__upload .thumbnail svg')).toBeVisible() + + await saveDocAndAssert(page) + + await expect(page.locator('.file-details img')).toBeVisible() + }) + test('should show draft uploads in the relation list', async () => { await page.goto(relationURL.list) diff --git a/test/uploads/test-image.tiff b/test/uploads/test-image.tiff new file mode 100644 index 0000000000000000000000000000000000000000..aec102e78b662d701723e69d6d478ba111756590 GIT binary patch literal 644 zcmebD)MBtq!^XzgUKH^}2KgX?)q?sx{Yp zSxDxUUrU*mhA+ID9c*>9tT1|mSN1i_(zde-o1#*_Ri}hq&F_!S3wYgnO}}`L#Et;+Ox^!UiYs2FqM;4u0QhlTE$jAU-{YgPe1Ma znm4z8vD@qOyY~8>dB5H4-Phe;&&y6fZ1wqU%|3sh?h{FTzX?FK#h02r&F(U||3T9t1E#*e8HIMkqT4$Yx?>2CHEK zvYDZ5Rv?=V%4P<#1)=IWfNW8yILKTvBy+@}Y-6B=6eBCxOeQ7<25Bgp3&_@h>IE_x z3>ldi1c9^=kYkHvrUQ^|02EgNDFT6VMurz4M?mR<#LT=By}Z;C1yel(Jwsy#hW|hS MR*93qFHcB60L2xzivR!s literal 0 HcmV?d00001