From 8dca270965f72ff266bcf6fb178ccb83d1178678 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Fri, 18 Jul 2025 15:11:22 +0200 Subject: [PATCH] up --- src/runtime/components/FileUpload.vue | 33 ++++++++++++++------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/runtime/components/FileUpload.vue b/src/runtime/components/FileUpload.vue index ca491683..33903937 100644 --- a/src/runtime/components/FileUpload.vue +++ b/src/runtime/components/FileUpload.vue @@ -2,7 +2,6 @@ import type { AppConfig } from '@nuxt/schema' import type { UseFileDialogReturn } from '@vueuse/core' import theme from '#build/ui/file-upload' -import type { UseComponentIconsProps } from '../composables/useComponentIcons' import type { ButtonProps } from '../types' import type { ComponentConfig } from '../types/utils' @@ -58,16 +57,12 @@ export interface FileUploadEmits { } export interface FileUploadSlots { - default(props: { - open: UseFileDialogReturn['open'] - reset: UseFileDialogReturn['reset'] - previewUrls: string[] - }): any + default(props: { open: UseFileDialogReturn['open'], reset: UseFileDialogReturn['reset'] }): any leading(props?: {}): any label(props?: {}): any description(props?: {}): any actions(props?: {}): any - preview(props?: {}): any + files(props: { files: FileList }): any } @@ -96,7 +91,7 @@ const appConfig = useAppConfig() as FileUpload['AppConfig'] const inputRef = ref() const dropZoneRef = ref() -const { files, open, reset, onCancel, onChange } = useFileDialog({ +const { files, open, reset, onChange } = useFileDialog({ multiple: props.multiple, accept: props.accept, reset: props.reset, @@ -105,10 +100,10 @@ const { files, open, reset, onCancel, onChange } = useFileDialog({ }) const { isOverDropZone } = useDropZone(dropZoneRef, { onDrop, - dataTypes: props.accept.split(','), + // dataTypes: props.accept.split(','), multiple: props.multiple }) -const { emitFormInput, emitFormChange, id, name, disabled, ariaAttrs } = useFormField(props, { deferInputValidation: true }) +const { emitFormInput, id, name, disabled, ariaAttrs } = useFormField(props, { deferInputValidation: true }) const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.fileUpload || {}) })({ dropzone: props.dropzone, @@ -116,24 +111,24 @@ const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.fileUpload | size: props.size })) -const previewUrls = computed(() => Array.from(files.value || []).map(file => URL.createObjectURL(file))) - onChange((files) => { modelValue.value = (props.multiple ? files : files?.[0]) as (M extends true ? File[] : File) | null -}) -onCancel(() => { - /** do something on cancel */ + emitFormInput() }) function onDrop(files: File[] | null) { modelValue.value = (props.multiple ? files : files?.[0]) as (M extends true ? File[] : File) | null } + +defineExpose({ + inputRef +})