12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import * as React from "react";
- export { FileWithPath } from "file-selector";
- export default function Dropzone(
- props: DropzoneProps & React.RefAttributes<DropzoneRef>
- ): JSX.Element;
- export function useDropzone(options?: DropzoneOptions): DropzoneState;
- export interface DropzoneProps extends DropzoneOptions {
- children?(state: DropzoneState): JSX.Element;
- }
- export enum ErrorCode {
- FileInvalidType = "file-invalid-type",
- FileTooLarge = "file-too-large",
- FileTooSmall = "file-too-small",
- TooManyFiles = "too-many-files",
- }
- export interface FileError {
- message: string;
- code: ErrorCode | string;
- }
- export interface FileRejection {
- file: File;
- errors: FileError[];
- }
- export type DropzoneOptions = Pick<React.HTMLProps<HTMLElement>, PropTypes> & {
- accept?: Accept;
- minSize?: number;
- maxSize?: number;
- maxFiles?: number;
- preventDropOnDocument?: boolean;
- noClick?: boolean;
- noKeyboard?: boolean;
- noDrag?: boolean;
- noDragEventsBubbling?: boolean;
- disabled?: boolean;
- onDrop?: <T extends File>(
- acceptedFiles: T[],
- fileRejections: FileRejection[],
- event: DropEvent
- ) => void;
- onDropAccepted?: <T extends File>(files: T[], event: DropEvent) => void;
- onDropRejected?: (fileRejections: FileRejection[], event: DropEvent) => void;
- getFilesFromEvent?: (
- event: DropEvent
- ) => Promise<Array<File | DataTransferItem>>;
- onFileDialogCancel?: () => void;
- onFileDialogOpen?: () => void;
- onError?: (err: Error) => void;
- validator?: <T extends File>(file: T) => FileError | FileError[] | null;
- useFsAccessApi?: boolean;
- autoFocus?: boolean;
- };
- export type DropEvent =
- | React.DragEvent<HTMLElement>
- | React.ChangeEvent<HTMLInputElement>
- | DragEvent
- | Event;
- export type DropzoneState = DropzoneRef & {
- isFocused: boolean;
- isDragActive: boolean;
- isDragAccept: boolean;
- isDragReject: boolean;
- isFileDialogActive: boolean;
- acceptedFiles: File[];
- fileRejections: FileRejection[];
- rootRef: React.RefObject<HTMLElement>;
- inputRef: React.RefObject<HTMLInputElement>;
- getRootProps: <T extends DropzoneRootProps>(props?: T) => T;
- getInputProps: <T extends DropzoneInputProps>(props?: T) => T;
- };
- export interface DropzoneRef {
- open: () => void;
- }
- export interface DropzoneRootProps extends React.HTMLAttributes<HTMLElement> {
- refKey?: string;
- [key: string]: any;
- }
- export interface DropzoneInputProps
- extends React.InputHTMLAttributes<HTMLInputElement> {
- refKey?: string;
- }
- type PropTypes = "multiple" | "onDragEnter" | "onDragOver" | "onDragLeave";
- export interface Accept {
- [key: string]: string[];
- }
|