Founding price: $35, then $79.99 after 23:59 UTC on 4 November, then $79.99
Get ProChunked uploads that survive pauses, dropped connections and page reloads: a useResumableUpload hook with a tus 1.0 adapter, per-chunk retry with backoff, pause and resume from the server's offset, plus a ready card with speed and time left.
This item has no props to tune. Use the lens above to change theme, density, direction and more.
Ready-made card:
Or your own UI with the hook:
Any server works if you write a ResumableAdapter (create, offset, send): for example S3 multipart uploads, where the "offset" is the sum of the parts already stored.
| Export | Description |
|---|---|
useResumableUpload(options) | { state, start(file), pause(), resume(), retry(), cancel() }. |
ResumableUpload | File picker and progress card. |
tusAdapter(endpoint, options) | tus 1.0.0 core protocol over fetch. |
SessionGoneError, fingerprint | For your own adapters. |
| Option | Type | Default | Description |
|---|---|---|---|
adapter | ResumableAdapter | - | The server. |
chunkSize | number | 5 MiB | Bytes per request. |
retries, retryDelay | number | 3, 1000 | Per chunk; the delay doubles. |
storage | Storage | null | localStorage | Where session ids are kept for a reload. null disables it. |
state: status (idle, uploading, paused, done, error), progress (0 to 1), offset, total, rate, eta, error, uploadId.
role="status") gives bytes sent, speed and time left, and changes to "Paused at 40%", "Upload complete" or the error (role="alert").The component ships with a Testing Library test (resumable-upload.test.tsx) that covers: its main behaviour, the keyboard path and the error or empty states.