UNPKG

react-use-async-hook

Version:

Managed state for async tasks

2 lines 1.76 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports["react-use-async-hook"]=t(require("react")):e.ReactUseAsyncHook=t(e.react)}(self,(e=>(()=>{"use strict";var t={156:t=>{t.exports=e}},r={};function a(e){var n=r[e];if(void 0!==n)return n.exports;var o=r[e]={exports:{}};return t[e](o,o.exports,a),o.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};return(()=>{a.d(n,{default:()=>o});var e=a(156);const t={dataLoader:e=>e,executeOnLoad:!0,executeOnChange:!0,initialData:null,onError:e=>{console.error(e)}},r={autoExecute:"executeOnLoad"},o=a=>{const{task:n,dataLoader:o,initialData:c,executeOnLoad:u,onError:s,executeOnChange:i}=((e,t)=>{const a={...e};return Object.entries(r).forEach((e=>{let[t,r]=e;if(t in a){if(r in a)return void delete a[t];a[r]=a[t],delete a[t]}})),Object.entries(t).forEach((e=>{let[t,r]=e;t in a||(a[t]=r)})),a})(a,t),[f,d]=(0,e.useState)(c),[l,p]=(0,e.useState)(""),[x,y]=(0,e.useState)(null),[O,b]=(0,e.useState)(!!u),v=(0,e.useRef)(!1),h=(0,e.useRef)(u),j=(0,e.useCallback)((async function(){const e=v.current;try{b(!0);const t=await n(...arguments);y(t);const r=await o(t);e||(d(r),p(""))}catch(t){s(t),e||p(t)}finally{e||b(!1)}}),[o,s,n]);return(0,e.useEffect)((()=>{h.current&&j(),h.current&&!i&&(h.current=!1),!h.current&&i&&(h.current=!0)}),[j,i]),(0,e.useEffect)((()=>()=>{v.current=!0}),[]),{data:f,loading:O,error:l,taskResult:x,execute:j}}})(),n.default})())); //# sourceMappingURL=index.js.map