UNPKG

@nbottarini/react-observable

Version:

React hook for reacting to changes in @nbottarini/observable properties

3 lines (2 loc) 583 B
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