aboutsummaryrefslogtreecommitdiffstats
path: root/webui/src/bug/LabelChange.tsx
diff options
context:
space:
mode:
authorludovicm67 <ludovicmuller1@gmail.com>2020-02-12 23:09:45 +0100
committerludovicm67 <ludovicmuller1@gmail.com>2020-02-12 23:09:45 +0100
commitd0a6da286a28e79ae3bb75af41219c4cc4df20b0 (patch)
treec02a2641c78331a45af4623613136f4cdc51af17 /webui/src/bug/LabelChange.tsx
parentc2d18b3a9bec9933d2845ce3cfc6dd5b4f3ff348 (diff)
downloadgit-bug-d0a6da286a28e79ae3bb75af41219c4cc4df20b0.tar.gz
webui: finish TypeScript conversion
Diffstat (limited to 'webui/src/bug/LabelChange.tsx')
-rw-r--r--webui/src/bug/LabelChange.tsx48
1 files changed, 48 insertions, 0 deletions
diff --git a/webui/src/bug/LabelChange.tsx b/webui/src/bug/LabelChange.tsx
new file mode 100644
index 00000000..e7c75a37
--- /dev/null
+++ b/webui/src/bug/LabelChange.tsx
@@ -0,0 +1,48 @@
+import { makeStyles } from '@material-ui/core/styles';
+import React from 'react';
+
+import Author from '../Author';
+import Date from '../Date';
+import Label from '../Label';
+import { LabelChangeFragment } from './LabelChangeFragment.generated';
+
+const useStyles = makeStyles(theme => ({
+ main: {
+ ...theme.typography.body1,
+ marginLeft: theme.spacing(1) + 40,
+ },
+ author: {
+ fontWeight: 'bold',
+ },
+}));
+
+type Props = {
+ op: LabelChangeFragment;
+};
+
+function LabelChange({ op }: Props) {
+ const { added, removed } = op;
+ const classes = useStyles();
+ return (
+ <div className={classes.main}>
+ <Author author={op.author} className={classes.author} />
+ {added.length > 0 && <span> added the </span>}
+ {added.map((label, index) => (
+ <Label key={index} label={label} />
+ ))}
+ {added.length > 0 && removed.length > 0 && <span> and</span>}
+ {removed.length > 0 && <span> removed the </span>}
+ {removed.map((label, index) => (
+ <Label key={index} label={label} />
+ ))}
+ <span>
+ {' '}
+ label
+ {added.length + removed.length > 1 && 's'}{' '}
+ </span>
+ <Date date={op.date} />
+ </div>
+ );
+}
+
+export default LabelChange;