react-redux
Version:
Official React bindings for Redux
2 lines • 9.3 kB
JavaScript
import*as e from"react";import{useSyncExternalStoreWithSelector as t}from"use-sync-external-store/with-selector.js";const n=e.version.startsWith(`19`),r=Symbol.for(n?`react.transitional.element`:`react.element`),i=Symbol.for(`react.portal`),a=Symbol.for(`react.fragment`),o=Symbol.for(`react.strict_mode`),s=Symbol.for(`react.profiler`),c=Symbol.for(`react.consumer`),l=Symbol.for(`react.context`),u=Symbol.for(`react.forward_ref`),d=Symbol.for(`react.suspense`),f=Symbol.for(`react.suspense_list`),p=Symbol.for(`react.memo`),m=Symbol.for(`react.lazy`),h=u,g=p;function _(e){if(typeof e==`object`&&e){let{$$typeof:t}=e;switch(t){case r:switch(e=e.type,e){case a:case s:case o:case d:case f:return e;default:switch(e&&=e.$$typeof,e){case l:case u:case m:case p:return e;case c:return e;default:return t}}case i:return t}}}function v(e){return _(e)===p}function y(e,t,n,r,{areStatesEqual:i,areOwnPropsEqual:a,areStatePropsEqual:o}){let s=!1,c,l,u,d,f;function p(i,a){return c=i,l=a,u=e(c,l),d=t(r,l),f=n(u,d,l),s=!0,f}function m(){return u=e(c,l),t.dependsOnOwnProps&&(d=t(r,l)),f=n(u,d,l),f}function h(){return e.dependsOnOwnProps&&(u=e(c,l)),t.dependsOnOwnProps&&(d=t(r,l)),f=n(u,d,l),f}function g(){let t=e(c,l),r=!o(t,u);return u=t,r&&(f=n(u,d,l)),f}function _(e,t){let n=!a(t,l),r=!i(e,c,t,l);return c=e,l=t,n&&r?m():n?h():r?g():f}return function(e,t){return s?_(e,t):p(e,t)}}function b(e,{initMapStateToProps:t,initMapDispatchToProps:n,initMergeProps:r,...i}){return y(t(e,i),n(e,i),r(e,i),e,i)}function x(e,t){let n={};for(let r in e){let i=e[r];typeof i==`function`&&(n[r]=(...e)=>t(i(...e)))}return n}function S(e){return function(t){let n=e(t);function r(){return n}return r.dependsOnOwnProps=!1,r}}function C(e){return e.dependsOnOwnProps==null?e.length!==1:!!e.dependsOnOwnProps}function w(e,t){return function(t,{displayName:n}){let r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e,void 0)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=C(e);let i=r(t,n);return typeof i==`function`&&(r.mapToProps=i,r.dependsOnOwnProps=C(i),i=r(t,n)),i},r}}function T(e,t){return(n,r)=>{throw Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${r.wrappedComponentName}.`)}}function E(e){return e&&typeof e==`object`?S(t=>x(e,t)):e?typeof e==`function`?w(e,`mapDispatchToProps`):T(e,`mapDispatchToProps`):S(e=>({dispatch:e}))}function D(e){return e?typeof e==`function`?w(e,`mapStateToProps`):T(e,`mapStateToProps`):S(()=>({}))}function O(e,t,n){return{...n,...e,...t}}function k(e){return function(t,{displayName:n,areMergedPropsEqual:r}){let i=!1,a;return function(t,n,o){let s=e(t,n,o);return i?r(s,a)||(a=s):(i=!0,a=s),a}}}function A(e){return e?typeof e==`function`?k(e):T(e,`mergeProps`):()=>O}function j(e){e()}function M(){let e=null,t=null;return{clear(){e=null,t=null},notify(){j(()=>{let t=e;for(;t;)t.callback(),t=t.next})},get(){let t=[],n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0,i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){r&&e!==null&&(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}const N={notify(){},get:()=>[]};function P(e,t){let n,r=N,i=0,a=!1;function o(e){u();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),d())}}function s(){r.notify()}function c(){m.onStateChange&&m.onStateChange()}function l(){return a}function u(){i++,n||(n=t?t.addNestedSub(c):e.subscribe(c),r=M())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=N)}function f(){a||(a=!0,u())}function p(){a&&(a=!1,d())}let m={addNestedSub:o,notifyNestedSubs:s,handleChangeWrapper:c,isSubscribed:l,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>r};return m}const ee=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,te=typeof navigator<`u`&&navigator.product===`ReactNative`,F=ee||te?e.useLayoutEffect:e.useEffect;function I(e,t){return e===t?e!==0||t!==0||1/e==1/t:e!==e&&t!==t}function L(e,t){if(I(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!I(e[n[r]],t[n[r]]))return!1;return!0}const R={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},ne={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},re={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},z={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},ie={[h]:re,[g]:z};function B(e){return v(e)?z:ie[e.$$typeof]||R}const ae=Object.defineProperty,oe=Object.getOwnPropertyNames,V=Object.getOwnPropertySymbols,se=Object.getOwnPropertyDescriptor,H=Object.getPrototypeOf,U=Object.prototype;function W(e,t){if(typeof t!=`string`){if(U){let n=H(t);n&&n!==U&&W(e,n)}let n=oe(t);V&&(n=n.concat(V(t)));let r=B(e),i=B(t);for(let a=0;a<n.length;++a){let o=n[a];if(!ne[o]&&!(i&&i[o])&&!(r&&r[o])){let n=se(t,o);try{ae(e,o,n)}catch{}}}}return e}const G=Symbol.for(`react-redux-context`),ce=typeof globalThis<`u`?globalThis:{};function le(){if(!e.createContext)return{};let t=ce[G]??=new Map,n=t.get(e.createContext);return n||(n=e.createContext(null),t.set(e.createContext,n)),n}const K=le(),ue=[null,null];function de(e,t,n){F(()=>e(...t),n)}function fe(e,t,n,r,i,a){e.current=r,n.current=!1,i.current&&(i.current=null,a())}function pe(e,t,n,r,i,a,o,s,c,l,u,d){if(!e)return()=>{};let f=!1,p=null,m=()=>{if(f||!s.current)return;let e=t.getState(),n,d;try{n=r(e,i.current)}catch(e){d=e,p=e}d||(p=null),n===a.current?o.current||l():(a.current=n,c.current=n,o.current=!0,u())};return n.onStateChange=m,n.trySubscribe(),m(),()=>{if(f=!0,n.tryUnsubscribe(),n.onStateChange=null,p)throw p}}function me(e,t){return e===t}function q(t,n,r,{pure:i,areStatesEqual:a=me,areOwnPropsEqual:o=L,areStatePropsEqual:s=L,areMergedPropsEqual:c=L,forwardRef:l=!1,context:u=K}={}){let d=u,f=D(t),p=E(n),m=A(r),h=!!t;return t=>{let n=t.displayName||t.name||`Component`,r=`Connect(${n})`,i={shouldHandleStateChanges:h,displayName:r,wrappedComponentName:n,WrappedComponent:t,initMapStateToProps:f,initMapDispatchToProps:p,initMergeProps:m,areStatesEqual:a,areStatePropsEqual:s,areOwnPropsEqual:o,areMergedPropsEqual:c};function u(n){let[a,o,s]=e.useMemo(()=>{let{reactReduxForwardedRef:e,...t}=n;return[n.context,e,t]},[n]),c=e.useMemo(()=>{let e=d;return a?.Consumer&&(e=a),e},[a,d]),u=e.useContext(c),f=!!n.store&&!!n.store.getState&&!!n.store.dispatch,p=!!u&&!!u.store,m=f?n.store:u.store,g=p?u.getServerState:m.getState,_=e.useMemo(()=>b(m.dispatch,i),[m]),[v,y]=e.useMemo(()=>{if(!h)return ue;let e=P(m,f?void 0:u.subscription);return[e,e.notifyNestedSubs.bind(e)]},[m,f,u]),x=e.useMemo(()=>f?u:{...u,subscription:v},[f,u,v]),S=e.useRef(void 0),C=e.useRef(s),w=e.useRef(void 0),T=e.useRef(!1),E=e.useRef(!1),D=e.useRef(void 0);F(()=>(E.current=!0,()=>{E.current=!1}),[]);let O=e.useMemo(()=>()=>w.current&&s===C.current?w.current:_(m.getState(),s),[m,s]),k=e.useMemo(()=>e=>v?pe(h,m,v,_,C,S,T,E,w,y,e,r):()=>{},[v]);de(fe,[C,S,T,s,w,y]);let A;try{A=e.useSyncExternalStore(k,O,g?()=>_(g(),s):O)}catch(e){throw D.current&&(e.message+=`\nThe error may be correlated with this previous error:\n${D.current.stack}\n\n`),e}F(()=>{D.current=void 0,w.current=void 0,S.current=A});let j=e.useMemo(()=>{let n={...A};return l&&(n.ref=o),e.createElement(t,n)},[o,t,A]);return e.useMemo(()=>h?e.createElement(c.Provider,{value:x},j):j,[c,j,x])}let g=e.memo(u);if(g.WrappedComponent=t,g.displayName=u.displayName=r,l){let n=e.forwardRef(function(t,n){return e.createElement(g,{...t,reactReduxForwardedRef:n})});return n.displayName=r,n.WrappedComponent=t,W(n,t)}return W(g,t)}}const he=q,ge=q;function _e(t){let{children:n,context:r,serverState:i,store:a}=t,o=e.useMemo(()=>{let e=P(a);return{store:a,subscription:e,getServerState:i==null?void 0:()=>i}},[a,i]),s=e.useMemo(()=>a.getState(),[a]);F(()=>{let{subscription:e}=o;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),s!==a.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[o,s]);let c=r||K;return e.createElement(c.Provider,{value:o},n)}function J(t=K){return function(){return e.useContext(t)}}const Y=J();function X(e=K){let t=e===K?Y:J(e),n=()=>{let{store:e}=t();return e};return Object.assign(n,{withTypes:()=>n}),n}const Z=X();function Q(e=K){let t=e===K?Z:X(e),n=()=>t().dispatch;return Object.assign(n,{withTypes:()=>n}),n}const ve=Q(),ye=(e,t)=>e===t;function $(n=K){let r=n===K?Y:J(n),i=(n,i={})=>{let{equalityFn:a=ye}=typeof i==`function`?{equalityFn:i}:i,{store:o,subscription:s,getServerState:c}=r();e.useRef(!0);let l=e.useCallback({[n.name](e){return n(e)}}[n.name],[n]),u=t(s.addNestedSub,o.getState,c||o.getState,l,a);return e.useDebugValue(u),u};return Object.assign(i,{withTypes:()=>i}),i}const be=$(),xe=j;export{_e as Provider,K as ReactReduxContext,xe as batch,he as connect,Q as createDispatchHook,$ as createSelectorHook,X as createStoreHook,ge as legacy_connect,L as shallowEqual,ve as useDispatch,be as useSelector,Z as useStore};
//# sourceMappingURL=react-redux.browser.mjs.map