UNPKG

@ohkit/react-helper

Version:

some utils and hooks for react

3 lines (2 loc) 1.14 kB
import{useRef as n,useLayoutEffect as o,useEffect as t,useState as r,useCallback as e}from"react";import{pick as i}from"lodash-es";import{inBrowser as c}from"@ohkit/platform";function u(n,o){"function"==typeof n?n(o):n&&n.hasOwnProperty("current")&&Object.assign(n,{current:o})}function a(o,t){var r=n(o),e=function(n){void 0===n&&(n={}),n&&"object"==typeof n&&Object.assign(r.current,n)};return t&&e(i(o,t)),[r.current,e]}var f=function(n,r){c?o(n,r):t(n,r)};function p(n,o,t){var i=n[o],c="function"==typeof i,u=t||{},p=u.onChange,m=u.defaultValue,v=void 0===m?i:m,s=u.compare,d=void 0===s?function(n,o){return n===o}:s,h=r(function(){return void 0!==i?i:v}),l=h[0],g=h[1],C=a({onChange:p,compare:d,inner:l,isFuncState:c},["compare","onChange","inner","isFuncState"])[0],y=e(function(n,o){void 0===o&&(o=!0),null!=C.compare&&C.compare(C.inner,n)||(g(C.isFuncState?function(){return n}:n),o&&(null==C.onChange||C.onChange(n)))},[C]);return f(function(){var n=i;void 0===i&&void 0!==v&&(n=v),y(n,!1)},[v,i]),[l,y]}export{u as assignRef,f as useCompatibleEffect,a as useRuntime,p as useSyncPropsState}; //# sourceMappingURL=index.es.js.map