import { useEffect, useState } from "react"; import type { Subject } from "rxjs"; export const useStateFromSubscribe = ( subject: Subject, onUpdate: ( observerValue: T, next: React.Dispatch> ) => void, initialValue: U ) => { const [state, setState] = useState(initialValue); useEffect(() => { const subscription = subject.subscribe((observer) => onUpdate(observer, setState) ); return () => subscription.unsubscribe(); }, [subject]); return state; };