aboutsummaryrefslogtreecommitdiffstats
path: root/webui/src
diff options
context:
space:
mode:
Diffstat (limited to 'webui/src')
-rw-r--r--webui/src/App.tsx1
-rw-r--r--webui/src/pages/bug/Bug.tsx45
-rw-r--r--webui/src/pages/bug/BugQuery.tsx4
3 files changed, 31 insertions, 19 deletions
diff --git a/webui/src/App.tsx b/webui/src/App.tsx
index 4c81913c..e0580b1d 100644
--- a/webui/src/App.tsx
+++ b/webui/src/App.tsx
@@ -13,6 +13,7 @@ export default function App() {
<Switch>
<Route path="/" exact component={ListPage} />
<Route path="/new" exact component={NewBugPage} />
+ <Route path="/404bug" exact component={NotFoundPage} />
<Route path="/bug/:id" exact component={BugPage} />
<Route component={NotFoundPage} />
</Switch>
diff --git a/webui/src/pages/bug/Bug.tsx b/webui/src/pages/bug/Bug.tsx
index b8c3e8aa..8b537fb8 100644
--- a/webui/src/pages/bug/Bug.tsx
+++ b/webui/src/pages/bug/Bug.tsx
@@ -17,13 +17,20 @@ import TimelineQuery from './TimelineQuery';
*/
const useStyles = makeStyles((theme) => ({
main: {
- maxWidth: 1000,
+ maxWidth: 1200,
margin: 'auto',
marginTop: theme.spacing(4),
},
header: {
- marginLeft: theme.spacing(3) + 40,
marginRight: theme.spacing(2),
+ marginLeft: theme.spacing(3) + 205,
+ },
+ title: {
+ ...theme.typography.h5,
+ },
+ id: {
+ ...theme.typography.subtitle1,
+ marginLeft: theme.spacing(1),
},
container: {
display: 'flex',
@@ -37,11 +44,15 @@ const useStyles = makeStyles((theme) => ({
marginRight: theme.spacing(2),
minWidth: 400,
},
- sidebar: {
+ leftSidebar: {
+ marginTop: theme.spacing(2),
+ marginRight: theme.spacing(2),
+ },
+ rightSidebar: {
marginTop: theme.spacing(2),
flex: '0 0 200px',
},
- sidebarTitle: {
+ rightSidebarTitle: {
fontWeight: 'bold',
},
labelList: {
@@ -64,7 +75,6 @@ const useStyles = makeStyles((theme) => ({
},
backButton: {
position: 'sticky',
- marginTop: theme.spacing(1),
top: '80px',
backgroundColor: '#574142',
color: '#fff',
@@ -86,8 +96,18 @@ function Bug({ bug }: Props) {
<div className={classes.header}>
<BugTitleForm bug={bug} />
</div>
-
<div className={classes.container}>
+ <div className={classes.leftSidebar}>
+ <Button
+ variant="contained"
+ className={classes.backButton}
+ aria-label="back to issue list"
+ href="/"
+ >
+ <ArrowBackIcon />
+ Back to List
+ </Button>
+ </div>
<div className={classes.timeline}>
<TimelineQuery id={bug.id} />
<IfLoggedIn>
@@ -98,8 +118,8 @@ function Bug({ bug }: Props) {
)}
</IfLoggedIn>
</div>
- <div className={classes.sidebar}>
- <span className={classes.sidebarTitle}>Labels</span>
+ <div className={classes.rightSidebar}>
+ <span className={classes.rightSidebarTitle}>Labels</span>
<ul className={classes.labelList}>
{bug.labels.length === 0 && (
<span className={classes.noLabel}>None yet</span>
@@ -110,15 +130,6 @@ function Bug({ bug }: Props) {
</li>
))}
</ul>
- <Button
- variant="contained"
- className={classes.backButton}
- aria-label="back"
- href="/"
- >
- <ArrowBackIcon />
- Back to List
- </Button>
</div>
</div>
</main>
diff --git a/webui/src/pages/bug/BugQuery.tsx b/webui/src/pages/bug/BugQuery.tsx
index 2a70a2f8..ade64e9d 100644
--- a/webui/src/pages/bug/BugQuery.tsx
+++ b/webui/src/pages/bug/BugQuery.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { RouteComponentProps } from 'react-router-dom';
+import { Redirect, RouteComponentProps } from 'react-router-dom';
import CircularProgress from '@material-ui/core/CircularProgress';
@@ -15,8 +15,8 @@ const BugQuery: React.FC<Props> = ({ match }: Props) => {
variables: { id: match.params.id },
});
if (loading) return <CircularProgress />;
+ if (!data?.repository?.bug) return <Redirect to="/404bug" />;
if (error) return <p>Error: {error}</p>;
- if (!data?.repository?.bug) return <p>404.</p>;
return <Bug bug={data.repository.bug} />;
};