@fewings/react
Version:
Useful react components and hooks
2 lines (1 loc) • 1.03 kB
JavaScript
;var a=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var S=(t,e)=>{for(var o in e)a(t,o,{get:e[o],enumerable:!0})},b=(t,e,o,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of l(e))!C.call(t,s)&&s!==o&&a(t,s,{get:()=>e[s],enumerable:!(c=T(e,s))||c.enumerable});return t};var P=t=>b(a({},"__esModule",{value:!0}),t);var R={};S(R,{createContext:()=>v,useContextSelector:()=>f});module.exports=P(R);var r=require("react"),x=require("react/jsx-runtime"),v=t=>{let e=(0,r.createContext)(void 0),o=e.Provider;return e.Provider=({value:c,children:s})=>{let d=(0,r.useRef)(void 0),n=d.current;if(!n){let u=new Set;n={value:c??t,subscribe:i=>(u.add(i),()=>{u.delete(i)}),notify(){u.forEach(i=>i())}},d.current=n}return(0,r.useEffect)(()=>{n&&(Object.is(n.value,c)||(n.value=c,n.notify()))}),(0,x.jsx)(o,{value:n,children:s})},e},f=(t,e)=>{let o=(0,r.useContext)(t);return(0,r.useSyncExternalStore)(o.subscribe,()=>e(o.value))};