use-tus 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("react"),h=require("tus-js-client");const V=Object.freeze({autoAbort:!0,autoStart:!1,uploadOptions:void 0,Upload:h.Upload}),D=o=>({...V,...o}),m=({upload:o,abort:t,autoAbort:e})=>{r.useEffect(()=>{const s=async()=>{!o||!t||await t()};return()=>{e&&s()}},[e,o])},q=(o,t,e)=>{let s=o[e];const a=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(o,e,{get(){return a?.get?.()??s},set(n){a?.set?a.set.call(o,n):s=n,t(this)}})},I=({Upload:o,file:t,uploadOptions:e,uploadFnOptions:s,onChange:a,onStart:n,onAbort:d})=>{const u=new o(t,e),i=u.start.bind(u),l=u.abort.bind(u),U=()=>{i(),n()},E=async()=>{l(),d()};return u.start=U,u.abort=E,q(u,a,"url"),Object.entries(s).forEach(([A,p])=>{if(typeof p!="function")return;const c=(...O)=>p(...O,u);u.options[A]=c}),{upload:u,originalStart:i,originalAbort:l}};function R(o){const t=Object.entries(o).reduce((s,[a,n])=>({...s,[a]:typeof n!="function"?n:void 0}),{}),e=Object.entries(o).reduce((s,[a,n])=>({...s,[a]:typeof n=="function"?n:void 0}),{});return{uploadOptions:t,uploadFnOptions:e}}const F=o=>{o.findPreviousUploads().then(t=>{t.length&&o.resumeFromPreviousUpload(t[0]),o.start()})},w=Object.freeze({upload:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,error:void 0}),z=(o={})=>{const{autoAbort:t,autoStart:e,uploadOptions:s,Upload:a}=D(o),[n,d]=r.useState(w),[u,i]=r.useState({originalAbort:void 0}),l=p=>{d(c=>c.upload===void 0?c:{...c,...p})},U=r.useCallback((p,c={})=>{const O={...s,...c};function T(){l({isSuccess:!0,isUploading:!1}),O?.onSuccess?.(b)}const v={...O,onSuccess:T,onError:f=>{l({error:f,isUploading:!1}),O?.onError?.(f,b)}},g=f=>{d(K=>({...K,upload:f}))},y=()=>{l({isUploading:!0,isAborted:!1})},N=()=>{l({isUploading:!1,isAborted:!0})},{uploadOptions:_,uploadFnOptions:S}=R(v),{upload:b,originalAbort:H}=I({Upload:a,file:p,uploadOptions:_,uploadFnOptions:S,onChange:g,onStart:y,onAbort:N});e&&F(b),d({upload:b,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}),i({originalAbort:H})},[a,e,s]),E=r.useCallback(()=>{u?.originalAbort?.(),d(w),i({originalAbort:void 0})},[u]),A={...n,setUpload:U,remove:E};return m({upload:A.upload,abort:u.originalAbort,autoAbort:t??!1}),A},P={tusClientHasNotFounded:"No TusClient set, use TusClientProvider to set one",tusIsNotSupported:"This browser does not support uploads. Please use a modern browser instead."},x=r.createContext(void 0),L=r.createContext(void 0),k=()=>{const o=r.useContext(x);if(!o&&process.env.NODE_ENV!=="production")throw new Error(P.tusClientHasNotFounded);return r.useMemo(()=>o,[o])},j=()=>{const o=r.useContext(L);if(!o&&process.env.NODE_ENV!=="production")throw new Error(P.tusClientHasNotFounded);return r.useMemo(()=>o,[o])},X=(o,t)=>({type:"INSERT_UPLOAD_INSTANCE",payload:{cacheKey:o,uploadState:t}}),C=(o,t)=>({type:"UPDATE_UPLOAD_CONTEXT",payload:{cacheKey:o,context:t}}),M=o=>({type:"REMOVE_UPLOAD_INSTANCE",payload:{cacheKey:o}}),G=()=>({type:"RESET_CLIENT"}),J=o=>({type:"UPDATE_DEFAULT_OPTIONS",payload:{defaultOptions:o}}),B=(o,t={})=>{const{autoAbort:e,autoStart:s,uploadOptions:a,Upload:n}=D(t),{defaultOptions:d,uploads:u}=k(),i=j(),l=r.useCallback((p,c={})=>{const O={...d?.(p),...a,...c},T={...O,onSuccess:()=>{i(C(o,{isSuccess:!0,isUploading:!1})),O?.onSuccess?.(S)},onError:b=>{i(C(o,{error:b,isUploading:!1})),O?.onError?.(b,S)}},v=b=>{i(C(o,{upload:b}))},g=()=>{i(C(o,{isAborted:!1,isUploading:!0}))},y=()=>{i(C(o,{isAborted:!0,isUploading:!1}))},{uploadOptions:N,uploadFnOptions:_}=R(T),{upload:S}=I({Upload:n,file:p,uploadOptions:N,uploadFnOptions:_,onChange:v,onStart:g,onAbort:y});s&&F(S),i(X(o,{upload:S,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}))},[n,s,o,d,a,i]),U=r.useMemo(()=>u[o],[o,u]),E=r.useCallback(()=>{U?.upload?.abort(),i(M(o))},[U,i,o]),A=U?{...U,setUpload:l,remove:E}:{upload:void 0,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,setUpload:l,remove:E};return m({upload:A.upload,abort:A.upload?.abort,autoAbort:e??!1}),A},Q=()=>{const o=k(),t=j(),e=o.uploads,s=r.useCallback(n=>{t(M(n))},[t]),a=r.useCallback(()=>t(G()),[t]);return{state:e,removeUpload:s,reset:a}},W=(o,t)=>{switch(t.type){case"INSERT_UPLOAD_INSTANCE":{const{cacheKey:e,uploadState:s}=t.payload;return{...o,uploads:{...o.uploads,[e]:s}}}case"UPDATE_UPLOAD_CONTEXT":{const{cacheKey:e,context:s}=t.payload,a=o.uploads[e];return a?{...o,uploads:{...o.uploads,[e]:{...a,...s}}}:o}case"REMOVE_UPLOAD_INSTANCE":{const{cacheKey:e}=t.payload,s=o.uploads;return delete s[e],{...o,uploads:s}}case"UPDATE_DEFAULT_OPTIONS":{const{defaultOptions:e}=t.payload;return{...o,defaultOptions:e}}case"RESET_CLIENT":return{...o,uploads:{}};default:return o}},Y={uploads:{},defaultOptions:void 0},Z=({defaultOptions:o,children:t})=>{const[e,s]=r.useReducer(W,{...Y,defaultOptions:o});r.useEffect(()=>{h.isSupported||process.env.NODE_ENV==="production"||console.error(P.tusIsNotSupported)},[]),r.useEffect(()=>{e.defaultOptions!==o&&s(J(o))},[o,e.defaultOptions]);const a=r.createElement(L.Provider,{value:s},t);return r.createElement(x.Provider,{value:e},a)};exports.TusClientProvider=Z,exports.useTus=z,exports.useTusClient=Q,exports.useTusStore=B;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("react"),h=require("tus-js-client");const V=Object.freeze({autoAbort:!0,autoStart:!1,uploadOptions:void 0,Upload:h.Upload}),D=o=>({...V,...o}),m=({upload:o,abort:t,autoAbort:e})=>{n.useEffect(()=>{const s=async()=>{!o||!t||await t()};return()=>{e&&s()}},[e,o])},q=(o,t,e)=>{let s=o[e];const a=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(o,e,{get(){return a?.get?.()??s},set(r){a?.set?a.set.call(o,r):s=r,t(this)}})},I=({Upload:o,file:t,uploadOptions:e,uploadFnOptions:s,onChange:a,onStart:r,onAbort:p})=>{const u=new o(t,e),i=u.start.bind(u),l=u.abort.bind(u),A=(...d)=>{i(...d),r()},E=async(...d)=>{l(...d),p()};return u.start=A,u.abort=E,q(u,a,"url"),Object.entries(s).forEach(([d,c])=>{if(typeof c!="function")return;const O=(...b)=>c(...b,u);u.options[d]=O}),{upload:u,originalStart:i,originalAbort:l}};function R(o){const t=Object.entries(o).reduce((s,[a,r])=>({...s,[a]:typeof r!="function"?r:void 0}),{}),e=Object.entries(o).reduce((s,[a,r])=>({...s,[a]:typeof r=="function"?r:void 0}),{});return{uploadOptions:t,uploadFnOptions:e}}const F=o=>{o.findPreviousUploads().then(t=>{t.length&&o.resumeFromPreviousUpload(t[0]),o.start()})},w=Object.freeze({upload:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,error:void 0}),z=(o={})=>{const{autoAbort:t,autoStart:e,uploadOptions:s,Upload:a}=D(o),[r,p]=n.useState(w),[u,i]=n.useState({originalAbort:void 0}),l=c=>{p(O=>O.upload===void 0?O:{...O,...c})},A=n.useCallback((c,O={})=>{const b={...s,...O};function T(){l({isSuccess:!0,isUploading:!1}),b?.onSuccess?.(U)}const v={...b,onSuccess:T,onError:f=>{l({error:f,isUploading:!1}),b?.onError?.(f,U)}},y=f=>{p(K=>({...K,upload:f}))},g=()=>{l({isUploading:!0,isAborted:!1})},N=()=>{l({isUploading:!1,isAborted:!0})},{uploadOptions:_,uploadFnOptions:S}=R(v),{upload:U,originalAbort:H}=I({Upload:a,file:c,uploadOptions:_,uploadFnOptions:S,onChange:y,onStart:g,onAbort:N});e&&F(U),p({upload:U,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}),i({originalAbort:H})},[a,e,s]),E=n.useCallback(()=>{u?.originalAbort?.(),p(w),i({originalAbort:void 0})},[u]),d={...r,setUpload:A,remove:E};return m({upload:d.upload,abort:u.originalAbort,autoAbort:t??!1}),d},P={tusClientHasNotFounded:"No TusClient set, use TusClientProvider to set one",tusIsNotSupported:"This browser does not support uploads. Please use a modern browser instead."},x=n.createContext(void 0),L=n.createContext(void 0),k=()=>{const o=n.useContext(x);if(!o&&process.env.NODE_ENV!=="production")throw new Error(P.tusClientHasNotFounded);return n.useMemo(()=>o,[o])},j=()=>{const o=n.useContext(L);if(!o&&process.env.NODE_ENV!=="production")throw new Error(P.tusClientHasNotFounded);return n.useMemo(()=>o,[o])},X=(o,t)=>({type:"INSERT_UPLOAD_INSTANCE",payload:{cacheKey:o,uploadState:t}}),C=(o,t)=>({type:"UPDATE_UPLOAD_CONTEXT",payload:{cacheKey:o,context:t}}),M=o=>({type:"REMOVE_UPLOAD_INSTANCE",payload:{cacheKey:o}}),G=()=>({type:"RESET_CLIENT"}),J=o=>({type:"UPDATE_DEFAULT_OPTIONS",payload:{defaultOptions:o}}),B=(o,t={})=>{const{autoAbort:e,autoStart:s,uploadOptions:a,Upload:r}=D(t),{defaultOptions:p,uploads:u}=k(),i=j(),l=n.useCallback((c,O={})=>{const b={...p?.(c),...a,...O},T={...b,onSuccess:()=>{i(C(o,{isSuccess:!0,isUploading:!1})),b?.onSuccess?.(S)},onError:U=>{i(C(o,{error:U,isUploading:!1})),b?.onError?.(U,S)}},v=U=>{i(C(o,{upload:U}))},y=()=>{i(C(o,{isAborted:!1,isUploading:!0}))},g=()=>{i(C(o,{isAborted:!0,isUploading:!1}))},{uploadOptions:N,uploadFnOptions:_}=R(T),{upload:S}=I({Upload:r,file:c,uploadOptions:N,uploadFnOptions:_,onChange:v,onStart:y,onAbort:g});s&&F(S),i(X(o,{upload:S,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}))},[r,s,o,p,a,i]),A=n.useMemo(()=>u[o],[o,u]),E=n.useCallback(()=>{A?.upload?.abort(),i(M(o))},[A,i,o]),d=A?{...A,setUpload:l,remove:E}:{upload:void 0,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,setUpload:l,remove:E};return m({upload:d.upload,abort:d.upload?.abort,autoAbort:e??!1}),d},Q=()=>{const o=k(),t=j(),e=o.uploads,s=n.useCallback(r=>{t(M(r))},[t]),a=n.useCallback(()=>t(G()),[t]);return{state:e,removeUpload:s,reset:a}},W=(o,t)=>{switch(t.type){case"INSERT_UPLOAD_INSTANCE":{const{cacheKey:e,uploadState:s}=t.payload;return{...o,uploads:{...o.uploads,[e]:s}}}case"UPDATE_UPLOAD_CONTEXT":{const{cacheKey:e,context:s}=t.payload,a=o.uploads[e];return a?{...o,uploads:{...o.uploads,[e]:{...a,...s}}}:o}case"REMOVE_UPLOAD_INSTANCE":{const{cacheKey:e}=t.payload,s=o.uploads;return delete s[e],{...o,uploads:s}}case"UPDATE_DEFAULT_OPTIONS":{const{defaultOptions:e}=t.payload;return{...o,defaultOptions:e}}case"RESET_CLIENT":return{...o,uploads:{}};default:return o}},Y={uploads:{},defaultOptions:void 0},Z=({defaultOptions:o,children:t})=>{const[e,s]=n.useReducer(W,{...Y,defaultOptions:o});n.useEffect(()=>{h.isSupported||process.env.NODE_ENV==="production"||console.error(P.tusIsNotSupported)},[]),n.useEffect(()=>{e.defaultOptions!==o&&s(J(o))},[o,e.defaultOptions]);const a=n.createElement(L.Provider,{value:s},t);return n.createElement(x.Provider,{value:e},a)};exports.TusClientProvider=Z,exports.useTus=z,exports.useTusClient=Q,exports.useTusStore=B;
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- import{useEffect as D,useState as R,useCallback as T,createContext as F,useContext as w,useMemo as m,useReducer as B,createElement as L}from"react";import{Upload as J,isSupported as Q}from"tus-js-client";const W=Object.freeze({autoAbort:!0,autoStart:!1,uploadOptions:void 0,Upload:J}),x=o=>({...W,...o}),j=({upload:o,abort:t,autoAbort:e})=>{D(()=>{const s=async()=>{!o||!t||await t()};return()=>{e&&s()}},[e,o])},Y=(o,t,e)=>{let s=o[e];const n=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(o,e,{get(){var r,d;return(d=(r=n==null?void 0:n.get)==null?void 0:r.call(n))!=null?d:s},set(r){n!=null&&n.set?n.set.call(o,r):s=r,t(this)}})},K=({Upload:o,file:t,uploadOptions:e,uploadFnOptions:s,onChange:n,onStart:r,onAbort:d})=>{const a=new o(t,e),E=a.start.bind(a),l=a.abort.bind(a),S=()=>{E(),r()},O=async()=>{l(),d()};return a.start=S,a.abort=O,Y(a,n,"url"),Object.entries(s).forEach(([A,u])=>{if(typeof u!="function")return;const i=(...p)=>u(...p,a);a.options[A]=i}),{upload:a,originalStart:E,originalAbort:l}};function H(o){const t=Object.entries(o).reduce((s,[n,r])=>({...s,[n]:typeof r!="function"?r:void 0}),{}),e=Object.entries(o).reduce((s,[n,r])=>({...s,[n]:typeof r=="function"?r:void 0}),{});return{uploadOptions:t,uploadFnOptions:e}}const V=o=>{o.findPreviousUploads().then(t=>{t.length&&o.resumeFromPreviousUpload(t[0]),o.start()})},k=Object.freeze({upload:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,error:void 0}),Z=(o={})=>{const{autoAbort:t,autoStart:e,uploadOptions:s,Upload:n}=x(o),[r,d]=R(k),[a,E]=R({originalAbort:void 0}),l=u=>{d(i=>i.upload===void 0?i:{...i,...u})},S=T((u,i={})=>{const p={...s,...i};function v(){var c;l({isSuccess:!0,isUploading:!1}),(c=p==null?void 0:p.onSuccess)==null||c.call(p,b)}const g={...p,onSuccess:v,onError:c=>{var C;l({error:c,isUploading:!1}),(C=p==null?void 0:p.onError)==null||C.call(p,c,b)}},y=c=>{d(C=>({...C,upload:c}))},N=()=>{l({isUploading:!0,isAborted:!1})},_=()=>{l({isUploading:!1,isAborted:!0})},{uploadOptions:h,uploadFnOptions:P}=H(g),{upload:b,originalAbort:U}=K({Upload:n,file:u,uploadOptions:h,uploadFnOptions:P,onChange:y,onStart:N,onAbort:_});e&&V(b),d({upload:b,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}),E({originalAbort:U})},[n,e,s]),O=T(()=>{var u;(u=a==null?void 0:a.originalAbort)==null||u.call(a),d(k),E({originalAbort:void 0})},[a]),A={...r,setUpload:S,remove:O};return j({upload:A.upload,abort:a.originalAbort,autoAbort:t!=null?t:!1}),A},I={tusClientHasNotFounded:"No TusClient set, use TusClientProvider to set one",tusIsNotSupported:"This browser does not support uploads. Please use a modern browser instead."},M=F(void 0),z=F(void 0),X=()=>{const o=w(M);if(!o&&process.env.NODE_ENV!=="production")throw new Error(I.tusClientHasNotFounded);return m(()=>o,[o])},G=()=>{const o=w(z);if(!o&&process.env.NODE_ENV!=="production")throw new Error(I.tusClientHasNotFounded);return m(()=>o,[o])},$=(o,t)=>({type:"INSERT_UPLOAD_INSTANCE",payload:{cacheKey:o,uploadState:t}}),f=(o,t)=>({type:"UPDATE_UPLOAD_CONTEXT",payload:{cacheKey:o,context:t}}),q=o=>({type:"REMOVE_UPLOAD_INSTANCE",payload:{cacheKey:o}}),oo=()=>({type:"RESET_CLIENT"}),to=o=>({type:"UPDATE_DEFAULT_OPTIONS",payload:{defaultOptions:o}}),eo=(o,t={})=>{var e;const{autoAbort:s,autoStart:n,uploadOptions:r,Upload:d}=x(t),{defaultOptions:a,uploads:E}=X(),l=G(),S=T((i,p={})=>{const v={...a==null?void 0:a(i),...r,...p},g={...v,onSuccess:()=>{var U;l(f(o,{isSuccess:!0,isUploading:!1})),(U=v==null?void 0:v.onSuccess)==null||U.call(v,b)},onError:U=>{var c;l(f(o,{error:U,isUploading:!1})),(c=v==null?void 0:v.onError)==null||c.call(v,U,b)}},y=U=>{l(f(o,{upload:U}))},N=()=>{l(f(o,{isAborted:!1,isUploading:!0}))},_=()=>{l(f(o,{isAborted:!0,isUploading:!1}))},{uploadOptions:h,uploadFnOptions:P}=H(g),{upload:b}=K({Upload:d,file:i,uploadOptions:h,uploadFnOptions:P,onChange:y,onStart:N,onAbort:_});n&&V(b),l($(o,{upload:b,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}))},[d,n,o,a,r,l]),O=m(()=>E[o],[o,E]),A=T(()=>{var i;(i=O==null?void 0:O.upload)==null||i.abort(),l(q(o))},[O,l,o]),u=O?{...O,setUpload:S,remove:A}:{upload:void 0,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,setUpload:S,remove:A};return j({upload:u.upload,abort:(e=u.upload)==null?void 0:e.abort,autoAbort:s!=null?s:!1}),u},so=()=>{const o=X(),t=G(),e=o.uploads,s=T(r=>{t(q(r))},[t]),n=T(()=>t(oo()),[t]);return{state:e,removeUpload:s,reset:n}},no=(o,t)=>{switch(t.type){case"INSERT_UPLOAD_INSTANCE":{const{cacheKey:e,uploadState:s}=t.payload;return{...o,uploads:{...o.uploads,[e]:s}}}case"UPDATE_UPLOAD_CONTEXT":{const{cacheKey:e,context:s}=t.payload,n=o.uploads[e];return n?{...o,uploads:{...o.uploads,[e]:{...n,...s}}}:o}case"REMOVE_UPLOAD_INSTANCE":{const{cacheKey:e}=t.payload,s=o.uploads;return delete s[e],{...o,uploads:s}}case"UPDATE_DEFAULT_OPTIONS":{const{defaultOptions:e}=t.payload;return{...o,defaultOptions:e}}case"RESET_CLIENT":return{...o,uploads:{}};default:return o}},ro={uploads:{},defaultOptions:void 0},ao=({defaultOptions:o,children:t})=>{const[e,s]=B(no,{...ro,defaultOptions:o});D(()=>{Q||process.env.NODE_ENV==="production"||console.error(I.tusIsNotSupported)},[]),D(()=>{e.defaultOptions!==o&&s(to(o))},[o,e.defaultOptions]);const n=L(z.Provider,{value:s},t);return L(M.Provider,{value:e},n)};export{ao as TusClientProvider,Z as useTus,so as useTusClient,eo as useTusStore};
1
+ import{useEffect as D,useState as R,useCallback as T,createContext as F,useContext as w,useMemo as m,useReducer as B,createElement as L}from"react";import{Upload as J,isSupported as Q}from"tus-js-client";const W=Object.freeze({autoAbort:!0,autoStart:!1,uploadOptions:void 0,Upload:J}),x=o=>({...W,...o}),j=({upload:o,abort:t,autoAbort:e})=>{D(()=>{const s=async()=>{!o||!t||await t()};return()=>{e&&s()}},[e,o])},Y=(o,t,e)=>{let s=o[e];const n=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(o,e,{get(){var r,d;return(d=(r=n==null?void 0:n.get)==null?void 0:r.call(n))!=null?d:s},set(r){n!=null&&n.set?n.set.call(o,r):s=r,t(this)}})},K=({Upload:o,file:t,uploadOptions:e,uploadFnOptions:s,onChange:n,onStart:r,onAbort:d})=>{const a=new o(t,e),A=a.start.bind(a),l=a.abort.bind(a),S=(...p)=>{A(...p),r()},v=async(...p)=>{l(...p),d()};return a.start=S,a.abort=v,Y(a,n,"url"),Object.entries(s).forEach(([p,u])=>{if(typeof u!="function")return;const i=(...c)=>u(...c,a);a.options[p]=i}),{upload:a,originalStart:A,originalAbort:l}};function H(o){const t=Object.entries(o).reduce((s,[n,r])=>({...s,[n]:typeof r!="function"?r:void 0}),{}),e=Object.entries(o).reduce((s,[n,r])=>({...s,[n]:typeof r=="function"?r:void 0}),{});return{uploadOptions:t,uploadFnOptions:e}}const V=o=>{o.findPreviousUploads().then(t=>{t.length&&o.resumeFromPreviousUpload(t[0]),o.start()})},k=Object.freeze({upload:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,error:void 0}),Z=(o={})=>{const{autoAbort:t,autoStart:e,uploadOptions:s,Upload:n}=x(o),[r,d]=R(k),[a,A]=R({originalAbort:void 0}),l=u=>{d(i=>i.upload===void 0?i:{...i,...u})},S=T((u,i={})=>{const c={...s,...i};function b(){var O;l({isSuccess:!0,isUploading:!1}),(O=c==null?void 0:c.onSuccess)==null||O.call(c,U)}const g={...c,onSuccess:b,onError:O=>{var C;l({error:O,isUploading:!1}),(C=c==null?void 0:c.onError)==null||C.call(c,O,U)}},y=O=>{d(C=>({...C,upload:O}))},N=()=>{l({isUploading:!0,isAborted:!1})},_=()=>{l({isUploading:!1,isAborted:!0})},{uploadOptions:h,uploadFnOptions:P}=H(g),{upload:U,originalAbort:E}=K({Upload:n,file:u,uploadOptions:h,uploadFnOptions:P,onChange:y,onStart:N,onAbort:_});e&&V(U),d({upload:U,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}),A({originalAbort:E})},[n,e,s]),v=T(()=>{var u;(u=a==null?void 0:a.originalAbort)==null||u.call(a),d(k),A({originalAbort:void 0})},[a]),p={...r,setUpload:S,remove:v};return j({upload:p.upload,abort:a.originalAbort,autoAbort:t!=null?t:!1}),p},I={tusClientHasNotFounded:"No TusClient set, use TusClientProvider to set one",tusIsNotSupported:"This browser does not support uploads. Please use a modern browser instead."},M=F(void 0),z=F(void 0),X=()=>{const o=w(M);if(!o&&process.env.NODE_ENV!=="production")throw new Error(I.tusClientHasNotFounded);return m(()=>o,[o])},G=()=>{const o=w(z);if(!o&&process.env.NODE_ENV!=="production")throw new Error(I.tusClientHasNotFounded);return m(()=>o,[o])},$=(o,t)=>({type:"INSERT_UPLOAD_INSTANCE",payload:{cacheKey:o,uploadState:t}}),f=(o,t)=>({type:"UPDATE_UPLOAD_CONTEXT",payload:{cacheKey:o,context:t}}),q=o=>({type:"REMOVE_UPLOAD_INSTANCE",payload:{cacheKey:o}}),oo=()=>({type:"RESET_CLIENT"}),to=o=>({type:"UPDATE_DEFAULT_OPTIONS",payload:{defaultOptions:o}}),eo=(o,t={})=>{var e;const{autoAbort:s,autoStart:n,uploadOptions:r,Upload:d}=x(t),{defaultOptions:a,uploads:A}=X(),l=G(),S=T((i,c={})=>{const b={...a==null?void 0:a(i),...r,...c},g={...b,onSuccess:()=>{var E;l(f(o,{isSuccess:!0,isUploading:!1})),(E=b==null?void 0:b.onSuccess)==null||E.call(b,U)},onError:E=>{var O;l(f(o,{error:E,isUploading:!1})),(O=b==null?void 0:b.onError)==null||O.call(b,E,U)}},y=E=>{l(f(o,{upload:E}))},N=()=>{l(f(o,{isAborted:!1,isUploading:!0}))},_=()=>{l(f(o,{isAborted:!0,isUploading:!1}))},{uploadOptions:h,uploadFnOptions:P}=H(g),{upload:U}=K({Upload:d,file:i,uploadOptions:h,uploadFnOptions:P,onChange:y,onStart:N,onAbort:_});n&&V(U),l($(o,{upload:U,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}))},[d,n,o,a,r,l]),v=m(()=>A[o],[o,A]),p=T(()=>{var i;(i=v==null?void 0:v.upload)==null||i.abort(),l(q(o))},[v,l,o]),u=v?{...v,setUpload:S,remove:p}:{upload:void 0,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,setUpload:S,remove:p};return j({upload:u.upload,abort:(e=u.upload)==null?void 0:e.abort,autoAbort:s!=null?s:!1}),u},so=()=>{const o=X(),t=G(),e=o.uploads,s=T(r=>{t(q(r))},[t]),n=T(()=>t(oo()),[t]);return{state:e,removeUpload:s,reset:n}},no=(o,t)=>{switch(t.type){case"INSERT_UPLOAD_INSTANCE":{const{cacheKey:e,uploadState:s}=t.payload;return{...o,uploads:{...o.uploads,[e]:s}}}case"UPDATE_UPLOAD_CONTEXT":{const{cacheKey:e,context:s}=t.payload,n=o.uploads[e];return n?{...o,uploads:{...o.uploads,[e]:{...n,...s}}}:o}case"REMOVE_UPLOAD_INSTANCE":{const{cacheKey:e}=t.payload,s=o.uploads;return delete s[e],{...o,uploads:s}}case"UPDATE_DEFAULT_OPTIONS":{const{defaultOptions:e}=t.payload;return{...o,defaultOptions:e}}case"RESET_CLIENT":return{...o,uploads:{}};default:return o}},ro={uploads:{},defaultOptions:void 0},ao=({defaultOptions:o,children:t})=>{const[e,s]=B(no,{...ro,defaultOptions:o});D(()=>{Q||process.env.NODE_ENV==="production"||console.error(I.tusIsNotSupported)},[]),D(()=>{e.defaultOptions!==o&&s(to(o))},[o,e.defaultOptions]);const n=L(z.Provider,{value:s},t);return L(M.Provider,{value:e},n)};export{ao as TusClientProvider,Z as useTus,so as useTusClient,eo as useTusStore};
package/dist/index.js CHANGED
@@ -52,12 +52,12 @@ const createUpload = ({ Upload, file, uploadOptions, uploadFnOptions, onChange,
52
52
  const upload = new Upload(file, uploadOptions);
53
53
  const originalStart = upload.start.bind(upload);
54
54
  const originalAbort = upload.abort.bind(upload);
55
- const start = () => {
56
- originalStart();
55
+ const start = (...args) => {
56
+ originalStart(...args);
57
57
  onStart();
58
58
  };
59
- const abort = async () => {
60
- originalAbort();
59
+ const abort = async (...args) => {
60
+ originalAbort(...args);
61
61
  onAbort();
62
62
  };
63
63
  upload.start = start;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "use-tus",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "description": "React hooks for resumable file uploads using tus-js-client",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
@@ -73,13 +73,13 @@
73
73
  "storybook": "^7.5.1",
74
74
  "tailwindcss": "npm:@tailwindcss/postcss7-compat",
75
75
  "ts-jest": "^29.1.1",
76
- "tus-js-client": "^2.2.0",
76
+ "tus-js-client": "^4.0.0",
77
77
  "typescript": "^5.2.2",
78
78
  "vite": "^4.5.0"
79
79
  },
80
80
  "peerDependencies": {
81
81
  "react": ">=16.8",
82
- "tus-js-client": "^2.2.0"
82
+ "tus-js-client": ">=2.2.0"
83
83
  },
84
84
  "packageManager": "pnpm@8.8.0",
85
85
  "scripts": {