mirror of
https://github.com/Zagrios/bs-manager.git
synced 2026-07-03 14:08:25 +02:00
14 lines
421 B
TypeScript
14 lines
421 B
TypeScript
import { Observable } from "rxjs";
|
|
import { useState, useEffect } from "react";
|
|
|
|
export function useObservable<T>(factory: () => Observable<T>, initValue?: T, deps?: unknown[]): T {
|
|
const [obsValue, setObsValue] = useState<T>(initValue);
|
|
|
|
useEffect(() => {
|
|
const sub = factory().subscribe(val => setObsValue(() => val));
|
|
return () => sub.unsubscribe();
|
|
}, deps ?? []);
|
|
|
|
return obsValue;
|
|
}
|