UNPKG

@totalsoft/rocket-ui

Version:

A set of reusable and composable React components built on top of Material UI core for developing fast and friendly web applications interfaces.

59 lines (58 loc) 2.32 kB
import { IconButtonProps } from '../IconButton/types'; import { SvgIconComponent } from '@mui/icons-material'; import { F } from 'ts-toolbelt'; export interface UploadButtonProps extends Omit<IconButtonProps, 'type'> { /** * @default BackupIcon * The Icon to display. */ Icon?: SvgIconComponent; /** * The accept attribute takes as its value a comma-separated list of one or more file types, * or unique file type specifiers, describing which file types to allow. */ accept?: string; /** * The "capture" attribute specifies that, optionally, a new file should be captured, * and which device should be used to capture that new media of a type defined by the "accept" attribute. */ capture?: 'user' | 'environment'; /** * The Boolean multiple attribute, if set, means the form control accepts one or more values. */ multiple?: boolean; /** * The maximum value in bytes for all the files selected. */ maxTotalSize?: number; /** * The maximum value in bytes for any one file selected. */ maxItemSize?: number; /** * The minimum value in bytes for all the files selected. */ minTotalSize?: number; /** * The minimum value in bytes for any one file selected. */ minItemSize?: number; /** * Function to be called when a file dialog box concludes. * If something is selected, the function will be called with a FileList object with the selections, * if the dialog is canceled, the function will be called with a FileList object that only has the property "length" with the value 0. */ onFilesChanged?: (files: FileList) => void; /** * Function to be called when a error is detected in the selected files */ onError?: (errorObject: object) => void; } export type Validator = (arg1: string | number, arg2: FileList, arg3?: (err: object) => void) => boolean; export type FilesValidator = { validFileTypes: F.Curry<(arg1: string | number) => boolean>; validMaxItemSize: F.Curry<(arg1: string | number) => boolean>; validMaxTotalSize: F.Curry<(arg1: string | number) => boolean>; validMinItemSize: F.Curry<(arg1: string | number) => boolean>; validMinTotalSize: F.Curry<(arg1: string | number) => boolean>; };