Skip to content

Commit ac483ea

Browse files
committed
build status added
1 parent 068fa33 commit ac483ea

File tree

5 files changed

+74
-4
lines changed

5 files changed

+74
-4
lines changed

src/components/BuildList.tsx

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import {
99
Theme,
1010
createStyles,
1111
Chip,
12+
Typography,
13+
Grid,
1214
} from "@material-ui/core";
1315
import { Delete } from "@material-ui/icons";
1416
import { useHistory } from "react-router-dom";
@@ -17,6 +19,7 @@ import {
1719
useBuildDispatch,
1820
deleteBuild,
1921
} from "../contexts/build.context";
22+
import { BuildStatusChip } from "./BuildStatusChip";
2023

2124
const useStyles = makeStyles((theme: Theme) =>
2225
createStyles({
@@ -54,10 +57,35 @@ const BuildList: FunctionComponent = () => {
5457
}}
5558
>
5659
<ListItemText
57-
primary={`#${build.id}`}
58-
secondary={`Date: ${build.createdAt}`}
60+
disableTypography
61+
primary={
62+
<Grid container>
63+
<Grid item>
64+
<Typography variant="subtitle2">{`#${build.id}`}</Typography>
65+
</Grid>
66+
</Grid>
67+
}
68+
secondary={
69+
<Grid container direction="column">
70+
<Grid item>
71+
<Typography variant="caption" color="textPrimary">
72+
{build.createdAt}
73+
</Typography>
74+
</Grid>
75+
<Grid item>
76+
<Grid container justify="space-between">
77+
<Grid item>
78+
<Chip size="small" label={build.branchName} />
79+
</Grid>
80+
<Grid item>
81+
<BuildStatusChip status={build.status} />
82+
</Grid>
83+
</Grid>
84+
</Grid>
85+
</Grid>
86+
}
5987
/>
60-
<Chip size="small" label={build.branchName} />
88+
6189
<ListItemSecondaryAction className={classes.listItemSecondaryAction}>
6290
<IconButton
6391
onClick={() => {

src/components/BuildStatusChip.tsx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import React from "react";
2+
import { Chip } from "@material-ui/core";
3+
import { BuildStatus } from "../types/buildStatus";
4+
5+
export const BuildStatusChip: React.FunctionComponent<{
6+
status: BuildStatus;
7+
}> = ({ status }) => {
8+
let color: "inherit" | "primary" | "secondary" | "default" | undefined;
9+
let variant: "default" | "outlined" | undefined;
10+
switch (status) {
11+
case BuildStatus.passed:
12+
color = "primary";
13+
variant = "outlined";
14+
break;
15+
case BuildStatus.unresolved:
16+
color = "secondary";
17+
break;
18+
case BuildStatus.failed:
19+
color = "secondary";
20+
variant = "outlined";
21+
break;
22+
default:
23+
color = undefined;
24+
variant = undefined;
25+
}
26+
return <Chip variant={variant} color={color} label={status} size="small" />;
27+
};

src/contexts/build.context.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React from "react";
22
import { Build, TestRun } from "../types";
33
import { buildsService } from "../services";
44
import { TestStatus } from "../types/testStatus";
5+
import { BuildStatus } from "../types/buildStatus";
56

67
interface IRequestAction {
78
type: "request";
@@ -72,6 +73,7 @@ function buildReducer(state: State, action: IAction): State {
7273
buildList: state.buildList.map((build) => {
7374
if (build.id === action.payload) {
7475
// reset stats
76+
build.status = BuildStatus.passed;
7577
build.passedCount = 0;
7678
build.unresolvedCount = 0;
7779
build.failedCount = 0;
@@ -95,6 +97,13 @@ function buildReducer(state: State, action: IAction): State {
9597
}
9698
}
9799
});
100+
101+
if (build.failedCount > 0) {
102+
build.status = BuildStatus.failed;
103+
}
104+
if (build.unresolvedCount > 0) {
105+
build.status = BuildStatus.unresolved;
106+
}
98107
}
99108
return build;
100109
}),

src/types/build.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { TestRun } from "./testRun";
2+
import { BuildStatus } from "./buildStatus";
23

34
export interface Build {
45
id: string;
56
projectName: string;
67
branchName: string;
7-
status: string;
8+
status: BuildStatus;
89
createdAt: Date;
910
createdBy: string;
1011
testRuns: TestRun[];

src/types/buildStatus.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export enum BuildStatus {
2+
passed = "passed",
3+
unresolved = "unresolved",
4+
failed = "failed",
5+
}

0 commit comments

Comments
 (0)