src/file-uploader-basic/types.ts (45 lines of code) (raw):

/* Copyright (c) Uber Technologies, Inc. This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. */ import type { DropzoneProps } from 'react-dropzone'; import type { DragEvent } from 'react'; import type { Override } from '../helpers/overrides'; export type StyleProps = { $afterFileDrop: boolean; $disabled: boolean; $isDragActive: boolean; $isDragAccept: boolean; $isDragReject: boolean; $isFocused: boolean; }; export type FileUploaderBasicOverrides = { Root?: Override; FileDragAndDrop?: Override; ContentMessage?: Override; ContentSeparator?: Override; HiddenInput?: Override; ProgressMessage?: Override; ErrorMessage?: Override; ButtonComponent?: Override; CancelButtonComponent?: Override; RetryButtonComponent?: Override; Spinner?: Override; ProgressBar?: Override; }; export type FileUploaderBasicProps = Omit<DropzoneProps, 'accept'> & { accept?: string[] | string; buttonIcon?: () => JSX.Element; buttonText?: string; contentMessage?: string; disableClick?: boolean; 'aria-describedby'?: string; // Error message to be displayed errorMessage?: string; onCancel?: () => unknown; onRetry?: () => unknown; overrides?: FileUploaderBasicOverrides; progressAmount?: number; progressMessage?: string; swapButtonAndMessage?: boolean; }; export type DropFilesEventHandler = ( accepted: File[], rejected: File[], event: DragEvent<HTMLElement> ) => unknown;