use-tus
React hooks for resumable file uploads using tus.
Features
- Resumable file uploads on react.
- Managing the Upload by using context.
- One dependency (tus-js-client).
- TypeScript support.
Installation
You can install the package from npm.
or
Usage
We can use useTus
as following.
API
useTus
hooks
useTus
is a hooks to get or create an Upload
of tus.
Arguments
-
cacheKey
(type:string | undefined
)- Specify the key associated with the
Upload
if it's undefined, a random string will be specified.
- Specify the key associated with the
-
autoAbort
(type:boolean | undefined
) (default: true)- Whether or not to automatically abort uploads when useTus hooks is unmounted.
-
autoStart
(type:boolean | undefined
) (default: false)- Whether or not to start upload the file after
setUpload
function.
- Whether or not to start upload the file after
Returns
-
upload
(type:tus.Upload | undefined
)- The value of the
Upload
associated with the cacheKey in the TusClientProvider. If not present, undefined.
- The value of the
-
setUpload
(type:(file: tus.Upload['file'], options?: tus.Upload['options']) => void
)- Function to create an
Upload
and store it in TusClientProvider.
- Function to create an
-
isSuccess
(type:boolean
)- Whether the upload was successful or not.
-
isAborted
(type:boolean
)- Whether the upload was aborted or not.
-
error
(type:Error | undefined
)- Error when upload fails.
-
remove
(type:() => void
)- Function to delete the
Upload
associated with cacheKey.
- Function to delete the
TusClientProvider
TusClientProvider
is the provider that stores the Upload
with useTus
hooks.
In order to use useTus
, you need to set TusClientProvider
.
Props
-
canStoreURLs
(type:boolean | undefined
)- A boolean indicating whether the current environment allows storing URLs enabling the corresponding upload to be resumed. detail
-
defaultOptions
(type:(file: tus.Upload['file']) => tus.DefaltOptions | undefined
)- An object containing the default options used when creating a new upload. detail
useTusClient
useTusClient
is a hooks that can be used to retrieve and reset the state of a TusClientProvider
.
Returns
-
state
(type:{ [cacheKey: string]: UploadState | undefined }
)- Upload information associated with cacheKey
-
removeUpload
(type:(cacheKey: string) => void
)- Remove the upload instance associated with the specified cacheKey.
-
reset
(type:() => void
)- Initialize the value of TusClientProvider
Examples
The following are some example of how to use use-tus
.
Note that the TusClientProvider
must be specified as the parent or higher element.
Uploading a file
The setUpload and upload.start
functions can be used to perform resumable file uploads.
It is also possible to automatically upload files after setUpload by specifying the autoStart
option.
Aborting a file upload
You can abort the upload by using the upload.abort
function.
You can also specify the autoAbort
option to automatically stop uploads when unmounting hooks.
Default options of upload
You can specify default options in the defaultOptions
props of the TusClientProvider
.
Specify upload key
If you specify cacheKey
as an argument to useTus, you can get the upload
associated with it. This is useful for cross-page file uploads.