From 6d8477c72d0f084ca3dc8b87fd5ac8df589a303e Mon Sep 17 00:00:00 2001 From: zaqvil <379970109@qq.com> Date: Fri, 12 May 2023 21:08:12 +0800 Subject: [PATCH] feat(useFileDialog): add a parameter `reset` (#3059) --- packages/core/useFileDialog/index.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/core/useFileDialog/index.ts b/packages/core/useFileDialog/index.ts index b62861c9285..298c459584d 100644 --- a/packages/core/useFileDialog/index.ts +++ b/packages/core/useFileDialog/index.ts @@ -18,11 +18,17 @@ export interface UseFileDialogOptions extends ConfigurableDocument { * @see [HTMLInputElement Capture](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/capture) */ capture?: string + /** + * Reset when open file dialog. + * @default false + */ + reset?: boolean } const DEFAULT_OPTIONS: UseFileDialogOptions = { multiple: true, accept: '*', + reset: false, } export interface UseFileDialogReturn { @@ -57,6 +63,12 @@ export function useFileDialog(options: UseFileDialogOptions = {}): UseFileDialog } } + const reset = () => { + files.value = null + if (input) + input.value = '' + } + const open = (localOptions?: Partial) => { if (!input) return @@ -69,16 +81,11 @@ export function useFileDialog(options: UseFileDialogOptions = {}): UseFileDialog input.accept = _options.accept! if (hasOwn(_options, 'capture')) input.capture = _options.capture! - + if (_options.reset) + reset() input.click() } - const reset = () => { - files.value = null - if (input) - input.value = '' - } - return { files: readonly(files), open,