welcome-ui
Version:
Customizable design system with react • styled-components • styled-system and ariakit.
53 lines (52 loc) • 2.52 kB
TypeScript
import { default as React } from 'react';
import { Accept, DropEvent, DropzoneProps, DropzoneState } from 'react-dropzone';
import { ForceFileType } from '../Files';
import { CreateWuiProps } from '../System';
import { CreateEvent } from '../../utils/create-event';
export type FileDropChildren = {
disabled?: boolean;
error?: string;
file?: FileType;
fileName?: string;
fileUrl?: FileUrlType;
forceFileType?: ForceFileType;
isAnImage?: boolean;
isHoverAccept?: DropzoneState['isDragAccept'];
isHoverReject?: DropzoneState['isDragReject'];
openFile?: OpenType;
wordings?: WordingsType;
};
export interface FileDropOptions {
/** Pass a comma-separated string of file types e.g. "image/png" or "image/png,image/jpeg" */
accept?: Accept;
children?: (state: FileDropChildren) => JSX.Element;
fileName?: string;
forceFileType?: ForceFileType;
handleAddFile?: (event: CreateEvent | DropEvent | React.ChangeEvent<HTMLInputElement>) => void;
handleRemoveFile?: (event: CreateEvent | DropEvent | React.ChangeEvent<HTMLInputElement>) => void;
isClearable?: boolean;
isEditable?: boolean;
name?: string;
onBlur?: () => void;
onChange?: (event: CreateEvent | DropEvent | React.ChangeEvent<HTMLInputElement>) => void;
onError?: (event?: string) => void;
value: FileType;
/** Pass an object with optional fields title, hint, fileButtonText and/or previewButtonText (string or JSX.Element) */
wordings?: WordingsType;
}
export type FileDropProps = CreateWuiProps<'div', FileDropOptions> & Omit<DropzoneProps, 'children'>;
export interface FileWithPreview extends File {
preview?: string;
}
type FileType = FileWithPreview | string;
type FileUrlType = string | URL;
type OpenType = DropzoneState['open'];
type WordingsType = {
fileButtonText?: JSX.Element | string;
hint?: JSX.Element | string;
previewButtonText?: JSX.Element | string;
title?: JSX.Element | string;
};
export declare const FileDrop: import('../System').CreateWuiComponent<"div", FileDropProps>;
export declare const ImagePreview: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('styled-components').FastOmit<React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, keyof import('@xstyled/system').SystemProps<import('@xstyled/system').Theme>> & import('@xstyled/system').SystemProps<import('@xstyled/system').Theme>, never>> & string;
export {};