@rematch/loading
Version:
Loading indicator plugin for Rematch
3 lines (2 loc) • 2.24 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@rematch/loading"]={})}(this,(function(e){"use strict";function t(){return t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},t.apply(this,arguments)}var a=function(e,a,n){return function(o,i){var c,l,d,s=i||{name:"",action:""},f=s.name,r=s.action,u=s.detailedPayload;return n.global+=a,n.models[f]+=a,n.effects[f][r]+=a,t({},o,{global:e(n.global,u),models:t({},o.models,(c={},c[f]=e(n.models[f],u),c)),effects:t({},o.effects,(d={},d[f]=t({},o.effects[f],(l={},l[r]=e(n.effects[f][r],u),l)),d))})}};function n(e,t,a){return e?{error:t,success:a}:null}e.default=function(e){void 0===e&&(e={});var o=e.name||"loading";e.asNumber&&(e.type="number");var i="number"===e.type,c="full"===e.type,l=function(e,a){return i?e:c&&a?t({},a,{loading:e>0}):c?{loading:e>0,success:!1,error:!1}:e>0},d={global:l(0),models:{},effects:{}},s={global:0,models:{},effects:{}},f={name:o,reducers:{hide:a(l,-1,s),show:a(l,1,s)},state:d},r=l(0);return{config:{models:{loading:f}},onModel:function(t,a){var i=t.name;i!==o&&(s.models[i]=0,s.effects[i]={},d.models[i]=r,d.effects[i]={},Object.keys(a.dispatch[i]).forEach((function(t){if(!1!==a.dispatch[i][t].isEffect){s.effects[i][t]=0,d.effects[i][t]=r;var l=i+"/"+t;if((!e.whitelist||e.whitelist.includes(l))&&(!e.blacklist||!e.blacklist.includes(l))){var f=a.dispatch[i][t],u=function(){try{a.dispatch[o].show({name:i,action:t,detailedPayload:n(c,!1,!1)});var e=f.apply(void 0,arguments);return null!=e&&e.then?e.then((function(e){return a.dispatch[o].hide({name:i,action:t,detailedPayload:n(c,!1,!0)}),e})).catch((function(e){throw a.dispatch[o].hide({name:i,action:t,detailedPayload:n(c,e,!1)}),e})):(a.dispatch[o].hide({name:i,action:t,detailedPayload:n(c,!1,!0)}),e)}catch(e){throw a.dispatch[o].hide({name:i,action:t,detailedPayload:n(c,e,!1)}),e}};u.isEffect=!0,a.dispatch[i][t]=u}}})))}}},Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=loading.umd.production.min.js.map