UNPKG

2.44 kBTypeScriptView Raw
1import * as React from 'react';
2import {StyletronComponent} from 'styletron-react';
3import {Override} from '../overrides';
4
5export interface FileUploaderOverrides<T> {
6 Root?: Override<T>;
7 FileDragAndDrop?: Override<T>;
8 ContentMessage?: Override<T>;
9 ContentSeparator?: Override<T>;
10 HiddenInput?: Override<T>;
11 ProgressMessage?: Override<T>;
12 ErrorMessage?: Override<T>;
13 ButtonComponent?: Override<T>;
14 Spinner?: Override<T>;
15}
16
17export interface StyleProps {
18 $afterFileDrop: boolean;
19 $isDisabled: boolean;
20 $isDragActive: boolean;
21 $isDragAccept: boolean;
22 $isDragReject: boolean;
23 $isFocused: boolean;
24}
25
26export type DropFilesEventHandler = (
27 accepted: File[],
28 rejected: File[],
29 event: React.SyntheticEvent<HTMLElement>,
30) => any;
31
32export type DropFileEventHandler = (
33 acceptedOrRejected: File[],
34 event: React.SyntheticEvent<HTMLElement>,
35) => any;
36
37export type GetDataTransferItems = (
38 event: React.SyntheticEvent<any>,
39) => Promise<Array<File | DataTransferItem>>;
40
41export interface FileUploaderProps {
42 accept?: string | string[];
43 disableClick?: boolean;
44 disabled?: boolean;
45 getDataTransferItems?: GetDataTransferItems;
46 maxSize?: number;
47 minSize?: number;
48 multiple?: boolean;
49 name?: string;
50 onClick?: (event: React.MouseEvent<HTMLElement>) => any;
51 onFocus?: (event: React.FocusEvent<HTMLElement>) => any;
52 onBlur?: (event: React.FocusEvent<HTMLElement>) => any;
53 onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => any;
54 onDragStart?: (event: React.DragEvent<HTMLElement>) => any;
55 onDragEnter?: (event: React.DragEvent<HTMLElement>) => any;
56 onDragOver?: (event: React.DragEvent<HTMLElement>) => any;
57 onDragLeave?: (event: React.DragEvent<HTMLElement>) => any;
58 onDrop?: DropFilesEventHandler;
59 onDropAccepted?: DropFileEventHandler;
60 onDropRejected?: DropFileEventHandler;
61 onFileDialogCancel?: () => any;
62 preventDropOnDocument?: boolean;
63 errorMessage?: string;
64 onCancel?: () => any;
65 onRetry?: () => any;
66 overrides?: FileUploaderOverrides<StyleProps>;
67 progressAmount?: number;
68 progressMessage?: string;
69}
70export const FileUploader: React.FC<FileUploaderProps>;
71
72export const StyledRoot: StyletronComponent<any>;
73export const StyledFileDragAndDrop: StyletronComponent<any>;
74export const StyledContentMessage: StyletronComponent<any>;
75export const StyledErrorMessage: StyletronComponent<any>;
76export const StyledHiddenInput: StyletronComponent<any>;