use-state-track-prop
Version:
A react hook for private state of component tracking some props
10 lines (8 loc) • 1.69 kB
JavaScript
/**
* Bundle of use-state-track-prop
* Generated: 2023-09-26
* Version: 1.3.1
* License: MIT
* Author: 2631541504@qq.com
*/
!function(r,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):(r=r||self).useStateTrackProp=t(r.React)}(this,function(c){"use strict";function n(r,t){(null==t||t>r.length)&&(t=r.length);for(var e=0,n=new Array(t);e<t;e++)n[e]=r[e];return n}function i(r,t){return function(r){if(Array.isArray(r))return r}(r)||function(r,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(r)){var e=[],n=!0,u=!1,o=void 0;try{for(var c,i=r[Symbol.iterator]();!(n=(c=i.next()).done)&&(e.push(c.value),!t||e.length!==t);n=!0);}catch(r){u=!0,o=r}finally{try{n||null==i.return||i.return()}finally{if(u)throw o}}return e}}(r,t)||function(r,t){if(r){if("string"==typeof r)return n(r,t);var e=Object.prototype.toString.call(r).slice(8,-1);return"Map"===(e="Object"===e&&r.constructor?r.constructor.name:e)||"Set"===e?Array.from(e):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?n(r,t):void 0}}(r,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}return function(r,t){var e=c.useRef(),n=c.useRef(),u=(n.current=t||function(r){return r},i(c.useReducer(function(r){return r+1},0),2)[1]),t=c.useState(function(){return n.current(r)})[0],o=c.useRef(t);return r!==e.current&&(o.current=n.current(r,o.current,e.current),e.current=r),[o.current,c.useCallback(function(r){o.current="function"==typeof r?r(o.current):r,u()},[u])]}});