diff options
author | Michael Muré <batolettre@gmail.com> | 2018-08-15 21:49:31 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2018-08-15 21:49:31 +0200 |
commit | cf9e83e74dc5f91b0e13fbdb79848925e68809a3 (patch) | |
tree | e3b832cf0f5f6e4f4756f4e757babda22d9091e0 /webui/src/bug/LabelChange.js | |
parent | 1984d4343db770fc2c8e251a81f1ab997a4c4d5e (diff) | |
download | git-bug-cf9e83e74dc5f91b0e13fbdb79848925e68809a3.tar.gz |
webui: display label changes in the timeline + cleaning evrywhere
Diffstat (limited to 'webui/src/bug/LabelChange.js')
-rw-r--r-- | webui/src/bug/LabelChange.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/webui/src/bug/LabelChange.js b/webui/src/bug/LabelChange.js new file mode 100644 index 00000000..f954372a --- /dev/null +++ b/webui/src/bug/LabelChange.js @@ -0,0 +1,44 @@ +import { withStyles } from '@material-ui/core/styles' +import gql from 'graphql-tag' +import React from 'react' +import Author from '../Author' +import Date from '../Date' +import Label from '../Label' + +const styles = theme => ({ + main: { + ...theme.typography.body2 + }, +}) + +const LabelChange = ({op, classes}) => { + const {added, removed} = op + return ( + <div className={classes.main}> + <Author author={op.author} bold /> + { 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> + ) +} + +LabelChange.fragment = gql` + fragment LabelChange on Operation { + ... on LabelChangeOperation { + date + author { + name + email + } + added + removed + } + } +` + +export default withStyles(styles)(LabelChange) |