dreamstate
Version:
Store management library based on react context and observers
1 lines • 550 B
JavaScript
import{useContext as r,useState as n,useEffect as t}from"react";import{ScopeContext as T}from"../scoping/ScopeContext.js";function e(e,o){var u=r(T),E=n((function(){return u.INTERNAL.REGISTRY.CONTEXT_STATES_REGISTRY.get(e)}));return t((function(){var r=E[0],n=E[1],t=u.INTERNAL.REGISTRY.CONTEXT_STATES_REGISTRY.get(e)||null,T=t?o(t):null;return r!==t&&n(t),u.INTERNAL.subscribeToManager(e,(function(r){if(!T)return T=o(r),n(r);for(var t=o(r),e=0;e<t.length;e++)if(T[e]!==t[e])return T=t,n(r)}))}),[e,u.INTERNAL]),E[0]}export{e as useContextWithMemo};