import type { Observable } from '@noshiro/syncflow'; import { useEffect } from 'react'; import { useObservableState } from './use-observable-state'; export const useChangeValueEffect = ( input: A, callback: (v: A) => void ): void => { useEffect(() => { callback(input); }, [input, callback]); }; export const useValueAsObservable = (input: A): Observable => { const { state$, setState } = useObservableState(input); useChangeValueEffect(input, setState); return state$; };