UNPKG

use-merge-state

Version:

A useState variant hook that merges updates.

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