diff options
author | Michael Muré <batolettre@gmail.com> | 2020-02-14 22:56:59 +0100 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2020-02-14 22:56:59 +0100 |
commit | e9aff2a2a103b43852ecf7b57ae9ab297890eeed (patch) | |
tree | d66cb75151e42ada31e1d0179f8dba0ace388989 /webui/src/bug/Bug.tsx | |
parent | b2ca506210b3eb63c4964e5bb47203fd5341ddf4 (diff) | |
parent | 2df72942f2b057956c7873f908b64880ab647331 (diff) | |
download | git-bug-e9aff2a2a103b43852ecf7b57ae9ab297890eeed.tar.gz |
Merge remote-tracking branch 'origin/master' into cheshirekow-jira
Diffstat (limited to 'webui/src/bug/Bug.tsx')
-rw-r--r-- | webui/src/bug/Bug.tsx | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/webui/src/bug/Bug.tsx b/webui/src/bug/Bug.tsx new file mode 100644 index 00000000..f4029a5f --- /dev/null +++ b/webui/src/bug/Bug.tsx @@ -0,0 +1,94 @@ +import Typography from '@material-ui/core/Typography/Typography'; +import { makeStyles } from '@material-ui/core/styles'; +import React from 'react'; + +import Author from '../Author'; +import Date from '../Date'; +import Label from '../Label'; + +import { BugFragment } from './Bug.generated'; +import TimelineQuery from './TimelineQuery'; + +const useStyles = makeStyles(theme => ({ + main: { + maxWidth: 800, + margin: 'auto', + marginTop: theme.spacing(4), + }, + header: { + marginLeft: theme.spacing(1) + 40, + }, + title: { + ...theme.typography.h5, + }, + id: { + ...theme.typography.subtitle1, + marginLeft: theme.spacing(1), + }, + container: { + display: 'flex', + marginBottom: theme.spacing(1), + }, + timeline: { + flex: 1, + marginTop: theme.spacing(2), + marginRight: theme.spacing(2), + minWidth: 0, + }, + sidebar: { + marginTop: theme.spacing(2), + flex: '0 0 200px', + }, + labelList: { + listStyle: 'none', + padding: 0, + margin: 0, + }, + label: { + marginTop: theme.spacing(1), + marginBottom: theme.spacing(1), + '& > *': { + display: 'block', + }, + }, +})); + +type Props = { + bug: BugFragment; +}; + +function Bug({ bug }: Props) { + const classes = useStyles(); + return ( + <main className={classes.main}> + <div className={classes.header}> + <span className={classes.title}>{bug.title}</span> + <span className={classes.id}>{bug.humanId}</span> + + <Typography color={'textSecondary'}> + <Author author={bug.author} /> + {' opened this bug '} + <Date date={bug.createdAt} /> + </Typography> + </div> + + <div className={classes.container}> + <div className={classes.timeline}> + <TimelineQuery id={bug.id} /> + </div> + <div className={classes.sidebar}> + <Typography variant={'subtitle1'}>Labels</Typography> + <ul className={classes.labelList}> + {bug.labels.map(l => ( + <li className={classes.label} key={l.name}> + <Label label={l} key={l.name} /> + </li> + ))} + </ul> + </div> + </div> + </main> + ); +} + +export default Bug; |