@ohkit/react-helper
Version:
some utils and hooks for react
3 lines (2 loc) • 1.34 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("lodash-es"),require("@ohkit/platform")):"function"==typeof define&&define.amd?define(["exports","react","lodash-es","@ohkit/platform"],n):n((e||self).reactHelper={},e.react,e.lodashEs,e.platform)}(this,function(e,n,t,o){function r(e,o){var r=n.useRef(e),i=function(e){void 0===e&&(e={}),e&&"object"==typeof e&&Object.assign(r.current,e)};return o&&i(t.pick(e,o)),[r.current,i]}var i=function(e,t){o.inBrowser?n.useLayoutEffect(e,t):n.useEffect(e,t)};e.assignRef=function(e,n){"function"==typeof e?e(n):e&&e.hasOwnProperty("current")&&Object.assign(e,{current:n})},e.useCompatibleEffect=i,e.useRuntime=r,e.useSyncPropsState=function(e,t,o){var u=e[t],a="function"==typeof u,c=o||{},f=c.onChange,s=c.defaultValue,p=void 0===s?u:s,l=c.compare,d=void 0===l?function(e,n){return e===n}:l,h=n.useState(function(){return void 0!==u?u:p}),m=h[0],v=h[1],g=r({onChange:f,compare:d,inner:m,isFuncState:a},["compare","onChange","inner","isFuncState"])[0],y=n.useCallback(function(e,n){void 0===n&&(n=!0),null!=g.compare&&g.compare(g.inner,e)||(v(g.isFuncState?function(){return e}:e),n&&(null==g.onChange||g.onChange(e)))},[g]);return i(function(){var e=u;void 0===u&&void 0!==p&&(e=p),y(e,!1)},[p,u]),[m,y]}});
//# sourceMappingURL=index.umd.js.map