UNPKG

react-dropzone

Version:
54 lines (45 loc) 1.68 kB
import * as React from "react"; export default function Dropzone(props: DropzoneProps): JSX.Element; export function useDropzone(options?: DropzoneOptions): DropzoneState; export interface DropzoneProps extends DropzoneOptions { children?(state: DropzoneState): JSX.Element; } export type DropzoneOptions = Pick<React.HTMLProps<HTMLElement>, PropTypes> & { minSize?: number; maxSize?: number; preventDropOnDocument?: boolean; disabled?: boolean; onDrop?(acceptedFiles: File[], rejectedFiles: File[], event: DropEvent): void; onDropAccepted?(files: File[], event: DropEvent): void; onDropRejected?(files: File[], event: DropEvent): void; getFilesFromEvent?(event: DropEvent): Promise<Array<File | DataTransferItem>>; onFileDialogCancel?(): void; }; export type DropEvent = React.DragEvent<HTMLElement> | React.ChangeEvent<HTMLInputElement> | DragEvent | Event; export type DropzoneState = { isFocused: boolean; isDragActive: boolean; isDragAccept: boolean; isDragReject: boolean; isFileDialogActive: boolean; draggedFiles: File[]; acceptedFiles: File[]; rejectedFiles: File[]; rootRef: React.RefObject<HTMLElement>; inputRef: React.RefObject<HTMLInputElement>; getRootProps(props?: DropzoneRootProps): DropzoneRootProps; getInputProps(props?: DropzoneInputProps): DropzoneInputProps; 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 = "accept" | "multiple" | "onDragEnter" | "onDragOver" | "onDragLeave";