@nhost/react
Version:
Nhost React library
73 lines (72 loc) • 1.97 kB
TypeScript
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