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$;
};