UNPKG

@uni-store/react

Version:
7 lines (6 loc) 1.48 kB
/*! * @uni-store/react v0.3.5 * (c) 2022 dolymood (dolymood@gmail.com) * @license MIT */ var UniStoreReact=function(e,r,t){"use strict";function n(e,n){if(Array.isArray(n))return r.useMemo((()=>t.reactive(e())),n);let c=r.useRef(),u=r.useRef();return r.useMemo((()=>(u.current?Object.assign(c.current,n):(c.current=t.reactive(Object.assign({},n||{})),u.current=t.reactive(e(c.current))),u.current)),[n])}const c={$$typeof:!0,render:!0,compare:!0,type:!0};const u={},s={};return e.defineSetup=function(e){return r=>r?n(e,r):n(e)},e.reactiveReact=function(e,n){const o={forwardRef:!1,...n},f=e.displayName||e.name,a=(n,c)=>function(e){const n=r.useRef(null),c=r.useRef(null),o=r.useRef(!1),f=function(){const[,e]=r.useState();return()=>e([])}();let a=u;n.current||(n.current=t.effectScope(!0));const i=n.current;return i.effects.length=0,i.run((()=>{c.current&&c.current(),c.current=t.watchSyncEffect((()=>{a!==u?a===s||(o.current&&t.nextTick((()=>{!o.current&&f()})),o.current=!1):(o.current=!0,a=s,a=e())}))})),r.useEffect((()=>()=>{c.current&&(c.current(),c.current=null),i.stop(),n.current=null,o.current=!0}),[]),a}((()=>e(n,c)));let i;var l,p;return a.displayName=f,e.contextTypes&&(a.contextTypes=e.contextTypes),i=r.memo(o.forwardRef?r.forwardRef(a):a),l=e,p=i,Object.keys(l).forEach((e=>{c[e]||Object.defineProperty(p,e,Object.getOwnPropertyDescriptor(l,e))})),i.displayName=f,i},e.useSetup=n,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,UniStore);