From 4aa8ff0ba4c940110d426cddbf0d2a2e5b71b4f4 Mon Sep 17 00:00:00 2001 From: Alexandre BODIN Date: Wed, 28 May 2025 09:57:12 +0200 Subject: [PATCH] fix: issue #23572 support undefined allowed types --- .../api/address/content-types/address/schema.json | 1 - .../MediaLibraryInput/MediaLibraryInput.tsx | 14 +++++--------- .../core/upload/admin/src/utils/getAllowedFiles.ts | 6 +++++- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/examples/getstarted/src/api/address/content-types/address/schema.json b/examples/getstarted/src/api/address/content-types/address/schema.json index e941c00e0c..17ee3ad169 100755 --- a/examples/getstarted/src/api/address/content-types/address/schema.json +++ b/examples/getstarted/src/api/address/content-types/address/schema.json @@ -28,7 +28,6 @@ "type": "media", "multiple": false, "required": false, - "allowedTypes": ["files", "images", "videos", "audios"], "pluginOptions": {} }, "images": { diff --git a/packages/core/upload/admin/src/components/MediaLibraryInput/MediaLibraryInput.tsx b/packages/core/upload/admin/src/components/MediaLibraryInput/MediaLibraryInput.tsx index 682bfd1397..73d5a4743c 100644 --- a/packages/core/upload/admin/src/components/MediaLibraryInput/MediaLibraryInput.tsx +++ b/packages/core/upload/admin/src/components/MediaLibraryInput/MediaLibraryInput.tsx @@ -36,7 +36,7 @@ export interface MediaLibraryInputProps { export const MediaLibraryInput = React.forwardRef( ( { - attribute: { allowedTypes = ['videos', 'files', 'images', 'audios'], multiple = false } = {}, + attribute: { allowedTypes = null, multiple = false } = {}, label, hint, disabled = false, @@ -48,7 +48,6 @@ export const MediaLibraryInput = React.forwardRef { const { formatMessage } = useIntl(); const { onChange, value, error } = useField(name); - const fieldAllowedTypes = allowedTypes || ['files', 'images', 'videos', 'audios']; const [uploadedFiles, setUploadedFiles] = React.useState([]); const [step, setStep] = React.useState(undefined); const [selectedIndex, setSelectedIndex] = React.useState(0); @@ -123,7 +122,7 @@ export const MediaLibraryInput = React.forwardRef void ) => { - const allowedAssets = getAllowedFiles(fieldAllowedTypes, assets as AllowedFiles[]); + const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]); if (allowedAssets.length > 0) { callback(allowedAssets); @@ -137,7 +136,7 @@ export const MediaLibraryInput = React.forwardRef 0) { - const allowedUploadedFiles = getAllowedFiles( - fieldAllowedTypes, - uploadedFiles as AllowedFiles[] - ); + const allowedUploadedFiles = getAllowedFiles(allowedTypes, uploadedFiles as AllowedFiles[]); initiallySelectedAssets = multiple ? [...allowedUploadedFiles, ...selectedAssets] @@ -204,7 +200,7 @@ export const MediaLibraryInput = React.forwardRef { diff --git a/packages/core/upload/admin/src/utils/getAllowedFiles.ts b/packages/core/upload/admin/src/utils/getAllowedFiles.ts index c1834b90a7..91e5a282cf 100644 --- a/packages/core/upload/admin/src/utils/getAllowedFiles.ts +++ b/packages/core/upload/admin/src/utils/getAllowedFiles.ts @@ -15,7 +15,11 @@ export interface AllowedFiles extends File { type: string; } -export const getAllowedFiles = (pluralTypes: string[], files: AllowedFiles[]) => { +export const getAllowedFiles = (pluralTypes: string[] | null, files: AllowedFiles[]) => { + if (!pluralTypes) { + return files; + } + const singularTypes = toSingularTypes(pluralTypes); const allowedFiles = files.filter((file) => {