UNPKG

@nhost/react

Version:

Nhost React library

73 lines (72 loc) 1.97 kB
import { FileItemRef, FileUploadMachine, FileUploadState, StorageUploadFileParams, UploadFileHandlerResult } from '@nhost/nhost-js'; import { InterpreterFrom } from 'xstate'; export interface FileUploadHookResult extends FileUploadState { /** * Add the file without uploading it. */ add: (params: StorageUploadFileParams) => void; /** * Upload the file given as a parameter, or that has been previously added. */ upload: (params: Partial<StorageUploadFileParams>) => Promise<UploadFileHandlerResult>; /** * Cancel the ongoing upload. */ cancel: () => void; /** * @internal - used by the MultipleFilesUpload component to notice the file should be removed from the list. */ destroy: () => void; } export type { FileItemRef }; /** * Use the hook `useFileUploadItem` to control the file upload of a file in a multiple file upload. * * It has the same signature as `useFileUpload`. * * @example * ```tsx * const Item = ({itemRef}) => { * const { name, progress} = useFileUploadItem(itemRef) * return <li>{name} {progress}</li> * } * * const List = () => { * const { list } = useMultipleFilesUpload() * return <ul> * {list.map((itemRef) => <Item key={item.id} itemRef={item} />)} * </ul> * } * * ``` */ export declare const useFileUploadItem: (ref: FileItemRef | InterpreterFrom<FileUploadMachine>) => FileUploadHookResult; /** * Use the hook `useFileUpload` to upload a file. * * @example * ```tsx * const { add, * upload, * cancel, * isUploaded, * isUploading, * isError, * progress, * id, * bucketId, * name * } = useFileUpload(); * * * const handleFormSubmit = async (e) => { * e.preventDefault(); * * await upload({ file }) * } * ``` * * @docs https://docs.nhost.io/reference/react/use-file-upload */ export declare const useFileUpload: () => FileUploadHookResult; //# sourceMappingURL=useFileUpload.d.ts.map