import * as React from 'react'; import { usePromise } from 'react-use'; type UseResolvedPromiseValueReturn = T | undefined; export const usePromiseState = (promise: Promise): UseResolvedPromiseValueReturn => { const [ value, setValue ] = React.useState(); const mounted = usePromise(); React.useEffect(() => { mounted(promise).then(setValue); }, [ promise, mounted ]); return value; };