From 7750a8b8719605e177bb571b8b629d25bf662652 Mon Sep 17 00:00:00 2001 From: David Merckx Date: Wed, 19 Jun 2024 14:39:30 +0200 Subject: [PATCH] Lowercase extension when uploading files and fix searching for images with uppercase extensions (#386) --- src/dashboard/hook/UseUploads.ts | 7 ++++--- src/field/link/ImageLink.ts | 9 ++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/dashboard/hook/UseUploads.ts b/src/dashboard/hook/UseUploads.ts index 5965bf6e..b040f923 100644 --- a/src/dashboard/hook/UseUploads.ts +++ b/src/dashboard/hook/UseUploads.ts @@ -185,8 +185,9 @@ export function useUploads(onSelect?: (entry: EntryRow) => void) { }) ) - const extension = extname(upload.file.name) - const path = slugify(basename(upload.file.name, extension)) + const extensionOriginal = extname(upload.file.name) + const extension = extensionOriginal.toLowerCase() + const path = slugify(basename(upload.file.name, extensionOriginal)) const prev = await graph.preferPublished.maybeGet(Entry({parent: parentId})) const entryLocation = { @@ -211,7 +212,7 @@ export function useUploads(onSelect?: (entry: EntryRow) => void) { : location const hash = await createFileHash(new Uint8Array(buffer)) - const title = basename(upload.file.name, extension) + const title = basename(upload.file.name, extensionOriginal) const entry = await createEntryRow(config, { ...entryLocation, parent: parent?.entryId ?? null, diff --git a/src/field/link/ImageLink.ts b/src/field/link/ImageLink.ts index df4a4eef..ea844c44 100644 --- a/src/field/link/ImageLink.ts +++ b/src/field/link/ImageLink.ts @@ -51,9 +51,12 @@ export interface ImageField ImageLink> > {} -const imageCondition = Entry.type - .is('MediaFile') - .and(MediaFile.extension.isIn(imageExtensions)) +const imageCondition = Entry.type.is('MediaFile').and( + MediaFile.extension.isIn([ + ...imageExtensions, + ...imageExtensions.map(e => e.toUpperCase()) //Fix for historic files with case-insensitive extensions + ]) +) function imagePicker( multiple: boolean,