UNPKG

@uploadcare/react-uploader

Version:

React component for file uploads using Uploadcare

71 lines (52 loc) 2.33 kB
import { ComponentType } from 'react'; import { ConfigType } from '@uploadcare/file-uploader'; import { default as default_2 } from 'react'; import { EventMap } from '@uploadcare/file-uploader'; import { Ref } from 'react'; import { UploadCtxProvider } from '@uploadcare/file-uploader'; declare type CommonProps = { /** * The class name for wrapper over uploader */ className?: string; /** * The class name for uploader */ classNameUploader?: string; /** * The unique ID */ ctxName?: string; }; declare type ConfigProps = Partial<Omit<ConfigType, "pubkey">> & { pubkey: ConfigType["pubkey"]; }; declare type EventProps = Partial<TEventsSchema>; export declare const FileUploaderInline: ComponentType<TProps<"Inline">>; declare type FileUploaderInlineProps = {}; export declare const FileUploaderMinimal: ComponentType<TProps<"Minimal">>; declare type FileUploaderMinimalProps = {}; declare type FileUploaderModes = 'Regular' | 'Minimal' | 'Inline'; export declare const FileUploaderRegular: ComponentType<TProps<"Regular">>; declare type FileUploaderRegularProps = { /** * The prop controls the button's visibility in regular mode. */ headless?: boolean; }; declare type TEventsSchema = { [K in keyof EventMap as TPrefixOnAndCamelCase<K>]: (event: EventMap[K]["detail"]) => void; }; declare type TExtraPrefixOn<S extends string> = `on${Capitalize<S>}`; declare type TPrefixOnAndCamelCase<S extends string> = TExtraPrefixOn<TToCamelCase<S>>; declare type TProps<T extends FileUploaderModes> = CommonProps & ConfigProps & EventProps & UploadCtxPropviderProps & Pick<TProps_2, "fallback"> & (T extends "Regular" ? FileUploaderRegularProps : T extends "Minimal" ? FileUploaderMinimalProps : T extends "Inline" ? FileUploaderInlineProps : never); declare type TProps_2 = { fallback?: default_2.ReactNode | default_2.ReactPortal | null; condition?: boolean; children: default_2.ReactNode; }; declare type TToCamelCase<S extends string> = S extends `${infer Head}-${infer Tail}` ? `${Lowercase<Head>}${Capitalize<TToCamelCase<Tail>>}` : Lowercase<S>; declare type UploadCtxPropviderProps = { apiRef?: Ref<InstanceType<UploadCtxProvider>>; }; export { }