frappe-react-sdk 1.1.3 → 1.1.5

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.
@@ -4055,21 +4055,23 @@ const pa = ws.exports.jsx, Q = Nr(null), ba = ({
4055
4055
  socketPort: t,
4056
4056
  children: r
4057
4057
  }) => {
4058
- const s = Pr(() => {
4059
- const i = new Ji.FrappeApp(n, e);
4058
+ const s = new fa(n, t), i = Pr(() => {
4059
+ const o = new Ji.FrappeApp(n, e);
4060
4060
  return {
4061
4061
  url: n,
4062
4062
  tokenParams: e,
4063
- app: i,
4064
- auth: i.auth(),
4065
- db: i.db(),
4066
- call: i.call(),
4067
- file: i.file(),
4068
- socket: new fa(n, t).socket
4063
+ app: o,
4064
+ auth: o.auth(),
4065
+ db: o.db(),
4066
+ call: o.call(),
4067
+ file: o.file()
4069
4068
  };
4070
4069
  }, [n, e, t]);
4071
4070
  return /* @__PURE__ */ pa(Q.Provider, {
4072
- value: s,
4071
+ value: {
4072
+ ...i,
4073
+ socket: s.socket
4074
+ },
4073
4075
  children: r
4074
4076
  });
4075
4077
  }, wa = (n) => {
@@ -41,4 +41,4 @@ Check the render method of \``+u+"`."}return""}}function va(u){{if(u!==void 0){v
41
41
 
42
42
  Check your code at `+p+":"+g+"."}return""}}var ms={};function ma(u){{var p=vs();if(!p){var g=typeof u=="string"?u:u.displayName||u.name;g&&(p=`
43
43
 
44
- Check the top-level render call using <`+g+">.")}return p}}function ys(u,p){{if(!u._store||u._store.validated||u.key!=null)return;u._store.validated=!0;var g=ma(p);if(ms[g])return;ms[g]=!0;var b="";u&&u._owner&&u._owner!==Ln.current&&(b=" It was passed a child from "+V(u._owner.type)+"."),Ye(u),R('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',g,b),Ye(null)}}function gs(u,p){{if(typeof u!="object")return;if(qe(u))for(var g=0;g<u.length;g++){var b=u[g];Fn(b)&&ys(b,p)}else if(Fn(u))u._store&&(u._store.validated=!0);else if(u){var k=_(u);if(typeof k=="function"&&k!==u.entries)for(var P=k.call(u),x;!(x=P.next()).done;)Fn(x.value)&&ys(x.value,p)}}}function ya(u){{var p=u.type;if(p==null||typeof p=="string")return;var g;if(typeof p=="function")g=p.propTypes;else if(typeof p=="object"&&(p.$$typeof===f||p.$$typeof===l))g=p.propTypes;else return;if(g){var b=V(p);Pt(g,u.props,"prop",b,u)}else if(p.PropTypes!==void 0&&!Nn){Nn=!0;var k=V(p);R("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",k||"Unknown")}typeof p.getDefaultProps=="function"&&!p.getDefaultProps.isReactClassApproved&&R("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function ga(u){{for(var p=Object.keys(u.props),g=0;g<p.length;g++){var b=p[g];if(b!=="children"&&b!=="key"){Ye(u),R("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",b),Ye(null);break}}u.ref!==null&&(Ye(u),R("Invalid attribute `ref` supplied to `React.Fragment`."),Ye(null))}}function _s(u,p,g,b,k,P){{var x=I(u);if(!x){var T="";(u===void 0||typeof u=="object"&&u!==null&&Object.keys(u).length===0)&&(T+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var te=va(k);te?T+=te:T+=vs();var q;u===null?q="null":qe(u)?q="array":u!==void 0&&u.$$typeof===e?(q="<"+(V(u.type)||"Unknown")+" />",T=" Did you accidentally export a JSX literal instead of a component?"):q=typeof u,R("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",q,T)}var J=pa(u,p,g,k,P);if(J==null)return J;if(x){var ce=p.children;if(ce!==void 0)if(b)if(qe(ce)){for(var Je=0;Je<ce.length;Je++)gs(ce[Je],u);Object.freeze&&Object.freeze(ce)}else R("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else gs(ce,u)}return u===r?ga(J):ya(J),J}}function _a(u,p,g){return _s(u,p,g,!0)}function ba(u,p,g){return _s(u,p,g,!1)}var wa=ba,Ea=_a;it.Fragment=r,it.jsx=wa,it.jsxs=Ea}()),it}(function(n){process.env.NODE_ENV==="production"?n.exports=Wo():n.exports=qo()})(os);const Ho=os.exports.jsx,X=d.createContext(null),Yo=({url:n="",tokenParams:e,socketPort:t,children:r})=>{const s=d.useMemo(()=>{const i=new Ci.FrappeApp(n,e);return{url:n,tokenParams:e,app:i,auth:i.auth(),db:i.db(),call:i.call(),file:i.file(),socket:new Mo(n,t).socket}},[n,e,t]);return Ho(X.Provider,{value:s,children:r})},Jo=n=>{const{url:e,auth:t,tokenParams:r}=d.useContext(X),[s,i]=d.useState(),o=d.useCallback(()=>{const w=document.cookie.split(";").find(E=>E.trim().startsWith("user_id="));if(w){const E=w.split("=")[1];i(E&&E!=="Guest"?E:null)}else i(null)},[]);d.useEffect(()=>{r&&r.useToken?i(null):o()},[]);const{data:c,error:f,isLoading:a,isValidating:h,mutate:l}=tt(()=>r&&r.useToken||s?`${e}/api/method/frappe.auth.get_logged_user`:null,()=>t.getLoggedInUser(),{onError:()=>{i(null)},shouldRetryOnError:!1,revalidateOnFocus:!1,...n}),m=d.useCallback(async(w,E)=>t.loginWithUsernamePassword({username:w,password:E}).then(_=>{o()}),[]),v=d.useCallback(async()=>t.logout().then(()=>l(null)).then(()=>i(null)),[]);return{isLoading:s===void 0||a,currentUser:c,isValidating:h,error:f,login:m,logout:v,updateCurrentUser:l,getUserCookie:o}},zo=(n,e,t,r)=>{const{url:s,db:i}=d.useContext(X);return{...tt(t===void 0?`${s}/api/resource/${n}/${e}`:t,()=>i.getDoc(n,e),r)}},cs=n=>{var t,r,s;let e="";if(n!=null&&n.fields&&(e+="fields="+JSON.stringify(n==null?void 0:n.fields)+"&"),n!=null&&n.filters&&(e+="filters="+JSON.stringify(n==null?void 0:n.filters)+"&"),n!=null&&n.orFilters&&(e+="or_filters="+JSON.stringify(n==null?void 0:n.orFilters)+"&"),n!=null&&n.limit_start&&(e+="limit_start="+JSON.stringify(n==null?void 0:n.limit_start)+"&"),n!=null&&n.limit&&(e+="limit="+JSON.stringify(n==null?void 0:n.limit)+"&"),n!=null&&n.groupBy&&(e+="group_by="+n.groupBy+"&"),n!=null&&n.orderBy){const i=`${(t=n.orderBy)==null?void 0:t.field} ${(s=(r=n.orderBy)==null?void 0:r.order)!=null?s:"asc"}`;e+="order_by="+i+"&"}return n!=null&&n.asDict&&(e+="as_dict="+n.asDict),e},Ko=(n,e,t,r)=>{const{url:s,db:i}=d.useContext(X);return{...tt(t===void 0?`${s}/api/resource/${n}?${cs(e)}`:t,()=>i.getDocList(n,e),r)}},Go=()=>{const{db:n}=d.useContext(X),[e,t]=d.useState(!1),[r,s]=d.useState(null),[i,o]=d.useState(!1),c=d.useCallback(()=>{t(!1),s(null),o(!1)},[]);return{createDoc:d.useCallback(async(a,h)=>(s(null),o(!1),t(!0),n.createDoc(a,h).then(l=>(t(!1),o(!0),l)).catch(l=>{throw t(!1),o(!1),s(l),l})),[]),loading:e,error:r,isCompleted:i,reset:c}},Xo=()=>{const{db:n}=d.useContext(X),[e,t]=d.useState(!1),[r,s]=d.useState(null),[i,o]=d.useState(!1),c=d.useCallback(()=>{t(!1),s(null),o(!1)},[]);return{updateDoc:d.useCallback(async(a,h,l)=>(s(null),o(!1),t(!0),n.updateDoc(a,h,l).then(m=>(t(!1),o(!0),m)).catch(m=>{throw t(!1),o(!1),s(m),m})),[]),loading:e,error:r,reset:c,isCompleted:i}},Qo=()=>{const{db:n}=d.useContext(X),[e,t]=d.useState(!1),[r,s]=d.useState(null),[i,o]=d.useState(!1),c=d.useCallback(()=>{t(!1),s(null),o(!1)},[]);return{deleteDoc:d.useCallback(async(a,h)=>(s(null),o(!1),t(!0),n.deleteDoc(a,h).then(l=>(t(!1),o(!0),l)).catch(l=>{throw t(!1),o(!1),s(l),l})),[]),loading:e,error:r,reset:c,isCompleted:i}};function ls(n){const e=[];for(let t in n)e.push(encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return e.join("&")}const Zo=(n,e,t=!1,r=!1,s,i)=>{const{url:o,db:c}=d.useContext(X);return{...tt(s===void 0?(()=>{const h=ls(t?{doctype:n,filters:e!=null?e:[],cache:t,debug:r}:{doctype:n,filters:e!=null?e:[],debug:r});return`${o}/api/method/frappe.client.get_count?${h}`})():s,()=>c.getCount(n,e,t,r),i)}},fs=(n,e,t,r)=>{const{call:s}=d.useContext(X),i=ls(e!=null?e:{}),o=`${n}?${i}`;return{...tt(t===void 0?o:t,()=>s.get(n,e),r)}},$o=n=>{const{call:e}=d.useContext(X),[t,r]=d.useState(null),[s,i]=d.useState(!1),[o,c]=d.useState(null),[f,a]=d.useState(!1),h=d.useCallback(()=>{r(null),i(!1),c(null),a(!1)},[]);return{call:d.useCallback(async m=>(c(null),a(!1),i(!0),r(null),e.post(n,m).then(v=>(r(v),i(!1),a(!0),v)).catch(v=>{throw i(!1),a(!1),c(v),v})),[]),result:t,loading:s,error:o,reset:h,isCompleted:f}},ea=n=>{const{call:e}=d.useContext(X),[t,r]=d.useState(null),[s,i]=d.useState(!1),[o,c]=d.useState(null),[f,a]=d.useState(!1),h=d.useCallback(()=>{r(null),i(!1),c(null),a(!1)},[]);return{call:d.useCallback(async m=>(c(null),a(!1),i(!0),r(null),e.put(n,m).then(v=>(r(v),i(!1),a(!0),v)).catch(v=>{throw i(!1),a(!1),c(v),v})),[]),result:t,loading:s,error:o,reset:h,isCompleted:f}},ta=n=>{const{call:e}=d.useContext(X),[t,r]=d.useState(null),[s,i]=d.useState(!1),[o,c]=d.useState(null),[f,a]=d.useState(!1),h=d.useCallback(()=>{r(null),i(!1),c(null),a(!1)},[]);return{call:d.useCallback(async m=>(c(null),a(!1),i(!0),r(null),e.delete(n,m).then(v=>(r(v),i(!1),a(!0),v)).catch(v=>{throw i(!1),a(!1),c(v),v})),[]),result:t,loading:s,error:o,reset:h,isCompleted:f}},na=()=>{const{file:n}=d.useContext(X),[e,t]=d.useState(0),[r,s]=d.useState(!1),[i,o]=d.useState(null),[c,f]=d.useState(!1),a=d.useCallback(async(l,m)=>(h(),s(!0),n.uploadFile(l,m,(v,w)=>t(Math.round(v/w*100))).then(v=>(f(!0),t(100),s(!1),v.data.message)).catch(v=>{throw console.error(v),o(v),s(!1),v})),[]),h=d.useCallback(()=>{t(0),s(!1),o(null),f(!1)},[]);return{upload:a,progress:e,loading:r,isCompleted:c,error:i,reset:h}},ra=(n,e,t=[],r=20,s=250)=>{const i=sa(e,s);return fs("frappe.desk.search.search_link",{doctype:n,page_length:r,txt:i,filters:JSON.stringify(t!=null?t:[])})},sa=(n,e)=>{const[t,r]=d.useState(n);return d.useEffect(()=>{const s=setTimeout(()=>{r(n)},e);return()=>{clearTimeout(s)}},[n,e]),t},Lt=(n,e)=>{const{socket:t}=d.useContext(X);d.useEffect(()=>{let r=t.on(n,e);return()=>{r.off(n)}},[n,e])},ia=(n,e,t=!0,r)=>{const{socket:s}=d.useContext(X),[i,o]=d.useState([]);d.useEffect(()=>(s.emit("doc_subscribe",n,e),t&&s.emit("doc_open",n,e),()=>{s.emit("doc_unsubscribe",n,e),t&&s.emit("doc_close",n,e)}),[n,e,t]),Lt("doc_update",r);const c=d.useCallback(()=>{s.emit("doc_open",n,e)},[n,e]),f=d.useCallback(()=>{s.emit("doc_close",n,e)},[n,e]),a=d.useCallback(h=>{h.doctype===n&&h.docname===e&&o(h.users)},[n,e]);return Lt("doc_viewers",a),{viewers:i,emitDocOpen:c,emitDocClose:f}},oa=(n,e)=>{const{socket:t}=d.useContext(X);d.useEffect(()=>(t.emit("doctype_subscribe",n),()=>{t.emit("doctype_unsubscribe",n)}),[n]),Lt("list_update",e)};A.FrappeContext=X,A.FrappeProvider=Yo,A.getDocListQueryString=cs,A.useFrappeAuth=Jo,A.useFrappeCreateDoc=Go,A.useFrappeDeleteCall=ta,A.useFrappeDeleteDoc=Qo,A.useFrappeDocTypeEventListener=oa,A.useFrappeDocumentEventListener=ia,A.useFrappeEventListener=Lt,A.useFrappeFileUpload=na,A.useFrappeGetCall=fs,A.useFrappeGetDoc=zo,A.useFrappeGetDocCount=Zo,A.useFrappeGetDocList=Ko,A.useFrappePostCall=$o,A.useFrappePutCall=ea,A.useFrappeUpdateDoc=Xo,A.useSearch=ra,Object.defineProperties(A,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
44
+ Check the top-level render call using <`+g+">.")}return p}}function ys(u,p){{if(!u._store||u._store.validated||u.key!=null)return;u._store.validated=!0;var g=ma(p);if(ms[g])return;ms[g]=!0;var b="";u&&u._owner&&u._owner!==Ln.current&&(b=" It was passed a child from "+V(u._owner.type)+"."),Ye(u),R('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',g,b),Ye(null)}}function gs(u,p){{if(typeof u!="object")return;if(qe(u))for(var g=0;g<u.length;g++){var b=u[g];Fn(b)&&ys(b,p)}else if(Fn(u))u._store&&(u._store.validated=!0);else if(u){var k=_(u);if(typeof k=="function"&&k!==u.entries)for(var P=k.call(u),x;!(x=P.next()).done;)Fn(x.value)&&ys(x.value,p)}}}function ya(u){{var p=u.type;if(p==null||typeof p=="string")return;var g;if(typeof p=="function")g=p.propTypes;else if(typeof p=="object"&&(p.$$typeof===f||p.$$typeof===l))g=p.propTypes;else return;if(g){var b=V(p);Pt(g,u.props,"prop",b,u)}else if(p.PropTypes!==void 0&&!Nn){Nn=!0;var k=V(p);R("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",k||"Unknown")}typeof p.getDefaultProps=="function"&&!p.getDefaultProps.isReactClassApproved&&R("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function ga(u){{for(var p=Object.keys(u.props),g=0;g<p.length;g++){var b=p[g];if(b!=="children"&&b!=="key"){Ye(u),R("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",b),Ye(null);break}}u.ref!==null&&(Ye(u),R("Invalid attribute `ref` supplied to `React.Fragment`."),Ye(null))}}function _s(u,p,g,b,k,P){{var x=I(u);if(!x){var T="";(u===void 0||typeof u=="object"&&u!==null&&Object.keys(u).length===0)&&(T+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var te=va(k);te?T+=te:T+=vs();var q;u===null?q="null":qe(u)?q="array":u!==void 0&&u.$$typeof===e?(q="<"+(V(u.type)||"Unknown")+" />",T=" Did you accidentally export a JSX literal instead of a component?"):q=typeof u,R("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",q,T)}var J=pa(u,p,g,k,P);if(J==null)return J;if(x){var ce=p.children;if(ce!==void 0)if(b)if(qe(ce)){for(var Je=0;Je<ce.length;Je++)gs(ce[Je],u);Object.freeze&&Object.freeze(ce)}else R("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else gs(ce,u)}return u===r?ga(J):ya(J),J}}function _a(u,p,g){return _s(u,p,g,!0)}function ba(u,p,g){return _s(u,p,g,!1)}var wa=ba,Ea=_a;it.Fragment=r,it.jsx=wa,it.jsxs=Ea}()),it}(function(n){process.env.NODE_ENV==="production"?n.exports=Wo():n.exports=qo()})(os);const Ho=os.exports.jsx,X=d.createContext(null),Yo=({url:n="",tokenParams:e,socketPort:t,children:r})=>{const s=new Mo(n,t),i=d.useMemo(()=>{const o=new Ci.FrappeApp(n,e);return{url:n,tokenParams:e,app:o,auth:o.auth(),db:o.db(),call:o.call(),file:o.file()}},[n,e,t]);return Ho(X.Provider,{value:{...i,socket:s.socket},children:r})},Jo=n=>{const{url:e,auth:t,tokenParams:r}=d.useContext(X),[s,i]=d.useState(),o=d.useCallback(()=>{const w=document.cookie.split(";").find(E=>E.trim().startsWith("user_id="));if(w){const E=w.split("=")[1];i(E&&E!=="Guest"?E:null)}else i(null)},[]);d.useEffect(()=>{r&&r.useToken?i(null):o()},[]);const{data:c,error:f,isLoading:a,isValidating:h,mutate:l}=tt(()=>r&&r.useToken||s?`${e}/api/method/frappe.auth.get_logged_user`:null,()=>t.getLoggedInUser(),{onError:()=>{i(null)},shouldRetryOnError:!1,revalidateOnFocus:!1,...n}),m=d.useCallback(async(w,E)=>t.loginWithUsernamePassword({username:w,password:E}).then(_=>{o()}),[]),v=d.useCallback(async()=>t.logout().then(()=>l(null)).then(()=>i(null)),[]);return{isLoading:s===void 0||a,currentUser:c,isValidating:h,error:f,login:m,logout:v,updateCurrentUser:l,getUserCookie:o}},zo=(n,e,t,r)=>{const{url:s,db:i}=d.useContext(X);return{...tt(t===void 0?`${s}/api/resource/${n}/${e}`:t,()=>i.getDoc(n,e),r)}},cs=n=>{var t,r,s;let e="";if(n!=null&&n.fields&&(e+="fields="+JSON.stringify(n==null?void 0:n.fields)+"&"),n!=null&&n.filters&&(e+="filters="+JSON.stringify(n==null?void 0:n.filters)+"&"),n!=null&&n.orFilters&&(e+="or_filters="+JSON.stringify(n==null?void 0:n.orFilters)+"&"),n!=null&&n.limit_start&&(e+="limit_start="+JSON.stringify(n==null?void 0:n.limit_start)+"&"),n!=null&&n.limit&&(e+="limit="+JSON.stringify(n==null?void 0:n.limit)+"&"),n!=null&&n.groupBy&&(e+="group_by="+n.groupBy+"&"),n!=null&&n.orderBy){const i=`${(t=n.orderBy)==null?void 0:t.field} ${(s=(r=n.orderBy)==null?void 0:r.order)!=null?s:"asc"}`;e+="order_by="+i+"&"}return n!=null&&n.asDict&&(e+="as_dict="+n.asDict),e},Ko=(n,e,t,r)=>{const{url:s,db:i}=d.useContext(X);return{...tt(t===void 0?`${s}/api/resource/${n}?${cs(e)}`:t,()=>i.getDocList(n,e),r)}},Go=()=>{const{db:n}=d.useContext(X),[e,t]=d.useState(!1),[r,s]=d.useState(null),[i,o]=d.useState(!1),c=d.useCallback(()=>{t(!1),s(null),o(!1)},[]);return{createDoc:d.useCallback(async(a,h)=>(s(null),o(!1),t(!0),n.createDoc(a,h).then(l=>(t(!1),o(!0),l)).catch(l=>{throw t(!1),o(!1),s(l),l})),[]),loading:e,error:r,isCompleted:i,reset:c}},Xo=()=>{const{db:n}=d.useContext(X),[e,t]=d.useState(!1),[r,s]=d.useState(null),[i,o]=d.useState(!1),c=d.useCallback(()=>{t(!1),s(null),o(!1)},[]);return{updateDoc:d.useCallback(async(a,h,l)=>(s(null),o(!1),t(!0),n.updateDoc(a,h,l).then(m=>(t(!1),o(!0),m)).catch(m=>{throw t(!1),o(!1),s(m),m})),[]),loading:e,error:r,reset:c,isCompleted:i}},Qo=()=>{const{db:n}=d.useContext(X),[e,t]=d.useState(!1),[r,s]=d.useState(null),[i,o]=d.useState(!1),c=d.useCallback(()=>{t(!1),s(null),o(!1)},[]);return{deleteDoc:d.useCallback(async(a,h)=>(s(null),o(!1),t(!0),n.deleteDoc(a,h).then(l=>(t(!1),o(!0),l)).catch(l=>{throw t(!1),o(!1),s(l),l})),[]),loading:e,error:r,reset:c,isCompleted:i}};function ls(n){const e=[];for(let t in n)e.push(encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return e.join("&")}const Zo=(n,e,t=!1,r=!1,s,i)=>{const{url:o,db:c}=d.useContext(X);return{...tt(s===void 0?(()=>{const h=ls(t?{doctype:n,filters:e!=null?e:[],cache:t,debug:r}:{doctype:n,filters:e!=null?e:[],debug:r});return`${o}/api/method/frappe.client.get_count?${h}`})():s,()=>c.getCount(n,e,t,r),i)}},fs=(n,e,t,r)=>{const{call:s}=d.useContext(X),i=ls(e!=null?e:{}),o=`${n}?${i}`;return{...tt(t===void 0?o:t,()=>s.get(n,e),r)}},$o=n=>{const{call:e}=d.useContext(X),[t,r]=d.useState(null),[s,i]=d.useState(!1),[o,c]=d.useState(null),[f,a]=d.useState(!1),h=d.useCallback(()=>{r(null),i(!1),c(null),a(!1)},[]);return{call:d.useCallback(async m=>(c(null),a(!1),i(!0),r(null),e.post(n,m).then(v=>(r(v),i(!1),a(!0),v)).catch(v=>{throw i(!1),a(!1),c(v),v})),[]),result:t,loading:s,error:o,reset:h,isCompleted:f}},ea=n=>{const{call:e}=d.useContext(X),[t,r]=d.useState(null),[s,i]=d.useState(!1),[o,c]=d.useState(null),[f,a]=d.useState(!1),h=d.useCallback(()=>{r(null),i(!1),c(null),a(!1)},[]);return{call:d.useCallback(async m=>(c(null),a(!1),i(!0),r(null),e.put(n,m).then(v=>(r(v),i(!1),a(!0),v)).catch(v=>{throw i(!1),a(!1),c(v),v})),[]),result:t,loading:s,error:o,reset:h,isCompleted:f}},ta=n=>{const{call:e}=d.useContext(X),[t,r]=d.useState(null),[s,i]=d.useState(!1),[o,c]=d.useState(null),[f,a]=d.useState(!1),h=d.useCallback(()=>{r(null),i(!1),c(null),a(!1)},[]);return{call:d.useCallback(async m=>(c(null),a(!1),i(!0),r(null),e.delete(n,m).then(v=>(r(v),i(!1),a(!0),v)).catch(v=>{throw i(!1),a(!1),c(v),v})),[]),result:t,loading:s,error:o,reset:h,isCompleted:f}},na=()=>{const{file:n}=d.useContext(X),[e,t]=d.useState(0),[r,s]=d.useState(!1),[i,o]=d.useState(null),[c,f]=d.useState(!1),a=d.useCallback(async(l,m)=>(h(),s(!0),n.uploadFile(l,m,(v,w)=>t(Math.round(v/w*100))).then(v=>(f(!0),t(100),s(!1),v.data.message)).catch(v=>{throw console.error(v),o(v),s(!1),v})),[]),h=d.useCallback(()=>{t(0),s(!1),o(null),f(!1)},[]);return{upload:a,progress:e,loading:r,isCompleted:c,error:i,reset:h}},ra=(n,e,t=[],r=20,s=250)=>{const i=sa(e,s);return fs("frappe.desk.search.search_link",{doctype:n,page_length:r,txt:i,filters:JSON.stringify(t!=null?t:[])})},sa=(n,e)=>{const[t,r]=d.useState(n);return d.useEffect(()=>{const s=setTimeout(()=>{r(n)},e);return()=>{clearTimeout(s)}},[n,e]),t},Lt=(n,e)=>{const{socket:t}=d.useContext(X);d.useEffect(()=>{let r=t.on(n,e);return()=>{r.off(n)}},[n,e])},ia=(n,e,t=!0,r)=>{const{socket:s}=d.useContext(X),[i,o]=d.useState([]);d.useEffect(()=>(s.emit("doc_subscribe",n,e),t&&s.emit("doc_open",n,e),()=>{s.emit("doc_unsubscribe",n,e),t&&s.emit("doc_close",n,e)}),[n,e,t]),Lt("doc_update",r);const c=d.useCallback(()=>{s.emit("doc_open",n,e)},[n,e]),f=d.useCallback(()=>{s.emit("doc_close",n,e)},[n,e]),a=d.useCallback(h=>{h.doctype===n&&h.docname===e&&o(h.users)},[n,e]);return Lt("doc_viewers",a),{viewers:i,emitDocOpen:c,emitDocClose:f}},oa=(n,e)=>{const{socket:t}=d.useContext(X);d.useEffect(()=>(t.emit("doctype_subscribe",n),()=>{t.emit("doctype_unsubscribe",n)}),[n]),Lt("list_update",e)};A.FrappeContext=X,A.FrappeProvider=Yo,A.getDocListQueryString=cs,A.useFrappeAuth=Jo,A.useFrappeCreateDoc=Go,A.useFrappeDeleteCall=ta,A.useFrappeDeleteDoc=Qo,A.useFrappeDocTypeEventListener=oa,A.useFrappeDocumentEventListener=ia,A.useFrappeEventListener=Lt,A.useFrappeFileUpload=na,A.useFrappeGetCall=fs,A.useFrappeGetDoc=zo,A.useFrappeGetDocCount=Zo,A.useFrappeGetDocList=Ko,A.useFrappePostCall=$o,A.useFrappePutCall=ea,A.useFrappeUpdateDoc=Xo,A.useSearch=ra,Object.defineProperties(A,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "frappe-react-sdk",
3
3
  "description": "React hooks for Frappe Framework",
4
- "version": "1.1.3",
4
+ "version": "1.1.5",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "The Commit Company",