UNPKG

@procore/core-react

Version:
68 lines (67 loc) 1.94 kB
import type { Method } from 'axios'; export declare type UNSAFE_GetEndpoint = (file: File) => string; export declare type GetMethod = (file: File) => Method; export declare type GetPayload = (file: File) => FormData; export declare type UNSAFE_GetPayloadKey = (file: File) => string; export declare type GetHeaders = (file: File) => Record<string, string>; declare type UploadTargetId = string | number; declare type UploadTarget = { id: UploadTargetId; blob: File; }; interface UploadFileCallbacks { /** * @since 10.19.0 */ onProgress: (progress: number) => void; /** * @since 10.19.0 */ onSuccess: (response: unknown) => void; /** * @since 10.19.0 */ onError: (error: unknown) => void; } export interface UNSAFE_UploadFile { (file: File, callbacks: UploadFileCallbacks): void; } export interface FileUploaderProps { /** * @since 10.19.0 */ getEndpoint?: UNSAFE_GetEndpoint; /** * @since 10.19.0 */ getMethod?: GetMethod; /** * @since 10.19.0 */ getPayload?: GetPayload; /** * @since 10.19.0 */ getPayloadKey?: UNSAFE_GetPayloadKey; /** * @since 10.19.0 */ getHeaders?: GetHeaders; /** * @since 10.19.0 */ uploadFile?: UNSAFE_UploadFile; } export interface FileUploader { /** * @since 10.19.0 */ uploadFiles: (files: UploadTarget[], { onCompleteAll, onComplete, onError, onProgress, }: { onCompleteAll?: () => void; onComplete?: (fileId: UploadTargetId, response: unknown) => void; onError?: (fileId: UploadTargetId, error: unknown) => void; onProgress?: (fileId: UploadTargetId, progress: number) => void; }) => void; } export declare function useFileUploader({ getEndpoint: externalGetEndpoint, getMethod, getPayload, getPayloadKey, getHeaders, uploadFile, }: FileUploaderProps): FileUploader; export {};