From 7e915cc2bfbad3e0c57dd20ee76cdec3292fdf85 Mon Sep 17 00:00:00 2001 From: J-michalek Date: Fri, 1 Aug 2025 14:16:24 +0200 Subject: [PATCH 1/3] fix(useFileUpload): dataTypes check for base types --- src/runtime/composables/useFileUpload.ts | 28 +++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/runtime/composables/useFileUpload.ts b/src/runtime/composables/useFileUpload.ts index 9f7c15612b..9e80035d34 100644 --- a/src/runtime/composables/useFileUpload.ts +++ b/src/runtime/composables/useFileUpload.ts @@ -67,9 +67,31 @@ export function useFileUpload(options: UseFileUploadOptions) { } onMounted(() => { - const { isOverDropZone } = dropzone - ? useDropZone(dropzoneRef, { dataTypes: dataTypes.value, onDrop }) - : { isOverDropZone: ref(false) } + const { isOverDropZone } = useDropZone(dropzoneRef, { + dataTypes: (types) => { + if (dataTypes.value === undefined || accept === '*') { + return true + } + + return types.some((type) => { + return dataTypes.value?.some((accepted) => { + if (accepted.endsWith('/*')) { + const base = accepted.slice(0, accepted.indexOf('/')) + return type.startsWith(base + '/') + } else { + return type === accepted + } + }) + }) + }, onDrop: (files, event) => { + if (!dropzone) { + event.preventDefault() + return + } + + onDrop(files) + } + }) watch(isOverDropZone, (value) => { isDragging.value = value From eb538dc6782b10f6c630780405681dd855814bcb Mon Sep 17 00:00:00 2001 From: J-michalek Date: Fri, 1 Aug 2025 14:37:02 +0200 Subject: [PATCH 2/3] fix(file-upload): broken reactivity for useFileUpload options Changing the props would lead to no updates which made the documentation example broken. --- src/runtime/components/FileUpload.vue | 6 ++--- src/runtime/composables/useFileUpload.ts | 31 ++++++++++++------------ 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/runtime/components/FileUpload.vue b/src/runtime/components/FileUpload.vue index e35ff0c8e7..c9eeee0703 100644 --- a/src/runtime/components/FileUpload.vue +++ b/src/runtime/components/FileUpload.vue @@ -126,7 +126,7 @@ export interface FileUploadSlots {