aboutsummaryrefslogtreecommitdiffstats
path: root/webui/src/components/Author.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'webui/src/components/Author.tsx')
-rw-r--r--webui/src/components/Author.tsx32
1 files changed, 32 insertions, 0 deletions
diff --git a/webui/src/components/Author.tsx b/webui/src/components/Author.tsx
new file mode 100644
index 00000000..43fd108e
--- /dev/null
+++ b/webui/src/components/Author.tsx
@@ -0,0 +1,32 @@
+import MAvatar from '@material-ui/core/Avatar';
+import Tooltip from '@material-ui/core/Tooltip/Tooltip';
+import React from 'react';
+
+import { AuthoredFragment } from './fragments.generated';
+
+type Props = AuthoredFragment & {
+ className?: string;
+ bold?: boolean;
+};
+
+const Author = ({ author, ...props }: Props) => {
+ if (!author.email) {
+ return <span {...props}>{author.displayName}</span>;
+ }
+
+ return (
+ <Tooltip title={author.email}>
+ <span {...props}>{author.displayName}</span>
+ </Tooltip>
+ );
+};
+
+export const Avatar = ({ author, ...props }: Props) => {
+ if (author.avatarUrl) {
+ return <MAvatar src={author.avatarUrl} {...props} />;
+ }
+
+ return <MAvatar {...props}>{author.displayName[0]}</MAvatar>;
+};
+
+export default Author;