UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

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