@nbottarini/react-observable
Version:
React hook for reacting to changes in @nbottarini/observable properties
3 lines (2 loc) • 583 B
JavaScript
import{useState,useReducer,useEffect}from"react";function useObservable(observable,initialValue){const[value,setValue]=useState(initialValue),forceUpdate=useReducer((()=>({})),{})[1];return useEffect((()=>{const observer={handler:newValue=>{value===newValue?forceUpdate():setValue(newValue)}};return observable.subscribe(observer,observer.handler),()=>{observable.unsubscribe(observer)}}),[observable]),value}function useObservableProperty(property){return useObservable(property.changed,property.value)}export{useObservable,useObservableProperty};
//# sourceMappingURL=index.js.map