IdentityQuery.tsx

 1import * as React from 'react';
 2import { useParams } from 'react-router-dom';
 3
 4import CircularProgress from '@material-ui/core/CircularProgress';
 5
 6import { useGetUserByIdQuery } from '../../components/Identity/UserIdentity.generated';
 7
 8import Identity from './Identity';
 9
10const UserQuery: React.FC = () => {
11  const params = useParams<'id'>();
12  if (params.id === undefined) throw new Error();
13
14  const { loading, error, data } = useGetUserByIdQuery({
15    variables: { userId: params.id },
16  });
17  if (loading) return <CircularProgress />;
18  if (error) return <p>Error: {error}</p>;
19  if (!data?.repository?.identity) return <p>404.</p>;
20  return <Identity identity={data.repository.identity} />;
21};
22
23export default UserQuery;