UNPKG

use-merge-state

Version:

A useState variant hook that merges updates.

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