@blabbing/signals
Version:
A reactive state management tool
2 lines (1 loc) • 451 B
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),o=require("@blabbing/signals");let t=[];function i(){t.forEach(e=>e()),t=[]}const h=e=>{const[u,s]=c.useMemo(()=>[a=>{const r=()=>{n.watch(),a()},n=new o.Signal.subtle.Watcher(()=>{t.length===0&&queueMicrotask(i),t.push(r)});return n.watch(e._c),()=>n.unwatch(e._c)},()=>e._c.get()],[e]);return c.useSyncExternalStore(u,s,s)};exports.useValue=h;