CurrentIdentity.tsx

 1import React from 'react';
 2import Avatar from '@material-ui/core/Avatar';
 3import { makeStyles } from '@material-ui/core/styles';
 4
 5import { useCurrentIdentityQuery } from './CurrentIdentity.generated';
 6
 7const useStyles = makeStyles(theme => ({
 8  displayName: {
 9    marginLeft: theme.spacing(2),
10  },
11}));
12
13const CurrentIdentity = () => {
14  const classes = useStyles();
15  const { loading, error, data } = useCurrentIdentityQuery();
16
17  if (error || loading || !data?.defaultRepository?.userIdentity)
18    return null;
19
20  const user = data.defaultRepository.userIdentity;
21  return (
22    <>
23      <Avatar src={user.avatarUrl ? user.avatarUrl : undefined}>
24        {user.displayName.charAt(0).toUpperCase()}
25      </Avatar>
26      <div className={classes.displayName}>{user.displayName}</div>
27    </>
28  );
29};
30
31export default CurrentIdentity;