import { DependencyList, useEffect } from 'react'; import useAsyncFn from './useAsyncFn'; export type AsyncState = | { loading: true; error?: undefined; value?: undefined; } | { loading: false; error: Error; value?: undefined; } | { loading: false; error?: undefined; value: T; }; const useAsync = (fn: () => Promise, deps: DependencyList = []) => { const [state, callback] = useAsyncFn(fn, deps); useEffect(() => { callback(); }, [callback]); return state; }; export default useAsync;