-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathusePassport.ts
More file actions
28 lines (24 loc) · 762 Bytes
/
Copy pathusePassport.ts
File metadata and controls
28 lines (24 loc) · 762 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { useEffect, useState } from 'react';
import type { TaoPassport } from '@tao-passport/shared-types';
import { ApiRequestError, passportApi } from '../services/api';
type PassportState = {
data: TaoPassport | null;
error: ApiRequestError | Error | null;
loading: boolean;
};
export function useSamplePassport(): PassportState {
const [state, setState] = useState<PassportState>({ data: null, error: null, loading: true });
useEffect(() => {
passportApi
.getSamplePassport()
.then((data) => setState({ data, error: null, loading: false }))
.catch((error: Error) =>
setState((current) => ({
data: current.data,
error,
loading: false,
})),
);
}, []);
return state;
}