1import * as React from 'react';
2
3export function useResolvedValue<T>(method: () => Promise<T>): [T | null, Error | null] {
4  const [error, setError] = React.useState<Error | null>(null);
5  const [value, setValue] = React.useState<T | null>(null);
6
7  React.useEffect(() => {
8    let isMounted = true;
9
10    method()
11      .then((value) => {
12        if (isMounted) {
13          setValue(value);
14        }
15      })
16      .catch((error) => {
17        if (isMounted) {
18          setError(error);
19        }
20      });
21    return () => {
22      isMounted = false;
23    };
24  }, []);
25
26  return [value, error];
27}
28