useFileDialog
Open file dialog with ease.
Usage
import { useFileDialog } from "@reactuses/core";
const Demo = () => {
const [files, open, reset] = useFileDialog();
return (
<div>
<button onClick={() => open()}> Choose files</button>
<button
style={{ marginLeft: 20 }}
disabled={!files}
onClick={() => {
reset();
}}
>
Reset
</button>
{files && (
<div>
<p>
You have selected: <b>{files.length} files</b>
{Array.from(files).map((file) => {
return <li key={file.name}>{file.name}</li>;
})}
</p>
</div>
)}
</div>
);
};
Example
Type Declarations
export interface UseFileDialogOptions {
/**
* @default true
*/
multiple?: boolean
/**
* @default '*'
*/
accept?: string
/**
* Select the input source for the capture file.
* @see [HTMLInputElement Capture](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/capture)
*/
capture?: string
}
export default function useFileDialog(
options?: UseFileDialogOptions
): readonly [
FileList | null,
(localOptions?: Partial<UseFileDialogOptions>) => void,
() => void
]