use-enhanced-reducer
Version:
[](https://www.npmjs.com/package/use-enhanced-reducer) [](https://www.npmjs.com/package/use-en
2 lines (1 loc) • 865 B
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return function(n){return e.reduceRight((function(e,n){return n(e)}),n)}};exports.loggerMiddleware=function(e,n){return function(r){return function(t){console.info("%cPrevious State:","color: #9E9E9E; font-weight: 700;",e),console.info("%cAction:","color: #00A7F7; font-weight: 700;",t),console.log("%cNext State:","color: #47B04B; font-weight: 700;",n(e,t)),r(t)}}},exports.thunkMiddleware=function(e){return function(n){return function(r){"function"!=typeof r?n(r):r(n,e)}}},exports.useEnhancedReducer=function(r,t,o){void 0===o&&(o=[]);var u=e.useReducer(r,t),c=u[0],i=u[1];if(!Array.isArray(o)||0===o.length)return[c,i];var f=o.map((function(e){return e(c,r)})),a=n.apply(void 0,f)(i);return[c,a]};