UNPKG

use-merge-state

Version:

A useState variant hook that merges updates.

3 lines (2 loc) 1.11 kB
import{useState as n,useMemo as t,useCallback as r}from"react";function o(){return o=Object.assign||function(n){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(n[o]=r[o])}return n},o.apply(this,arguments)}var e=Array.isArray;function c(n){return n instanceof Function}function u(n){return n instanceof Map}function i(n){return"object"==typeof n&&(null==n?void 0:n.constructor)===Object}function a(n){return n instanceof Set}var f=function(n,t){return e(n)&&e(t)?function(n,t){return[].concat(n,t)}(n,t):i(n)&&i(t)?function(n,t){return o({},n,t)}(n,t):u(n)&&u(t)?function(n,t){return new Map([].concat(n,t))}(n,t):a(n)&&a(t)?function(n,t){return new Set([].concat(n,t))}(n,t):t},p={merge:!0};function l(e,u){void 0===u&&(u=p);var i=n(e),a=i[0],l=i[1],s=t(function(){return o({},p,u)},[u]),v=r(function(n,t){var r=o({},s,t);l(r.merge?function(t){return f(t,function(n){return c(n)?n.apply(void 0,[].slice.call(arguments,1)):n}(n,t))}:n)},[s]);return[a,v]}export{f as merge,l as useMergeState}; //# sourceMappingURL=use-merge-state.module.js.map