1import { makeStyles } from '@material-ui/core/styles';
2import React from 'react';
3
4import Author from '../Author';
5import Date from '../Date';
6import Label from '../Label';
7import { LabelChangeFragment } from './LabelChangeFragment.generated';
8
9const useStyles = makeStyles(theme => ({
10 main: {
11 ...theme.typography.body1,
12 marginLeft: theme.spacing(1) + 40,
13 },
14 author: {
15 fontWeight: 'bold',
16 },
17}));
18
19type Props = {
20 op: LabelChangeFragment;
21};
22
23function LabelChange({ op }: Props) {
24 const { added, removed } = op;
25 const classes = useStyles();
26 return (
27 <div className={classes.main}>
28 <Author author={op.author} className={classes.author} />
29 {added.length > 0 && <span> added the </span>}
30 {added.map((label, index) => (
31 <Label key={index} label={label} />
32 ))}
33 {added.length > 0 && removed.length > 0 && <span> and</span>}
34 {removed.length > 0 && <span> removed the </span>}
35 {removed.map((label, index) => (
36 <Label key={index} label={label} />
37 ))}
38 <span>
39 {' '}
40 label
41 {added.length + removed.length > 1 && 's'}{' '}
42 </span>
43 <Date date={op.date} />
44 </div>
45 );
46}
47
48export default LabelChange;