Skip to content

Commit a2385eb

Browse files
authored
Merge pull request #17 from Visual-Regression-Tracker/38-buildlist-loading
38 loading animation
2 parents 04a0ae0 + e2d2815 commit a2385eb

File tree

7 files changed

+370
-330
lines changed

7 files changed

+370
-330
lines changed

src/components/BuildList.tsx

Lines changed: 58 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
selectBuild,
2222
} from "../contexts";
2323
import { BuildStatusChip } from "./BuildStatusChip";
24+
import { SkeletonList } from "./SkeletonList";
2425

2526
const useStyles = makeStyles((theme: Theme) =>
2627
createStyles({
@@ -38,67 +39,73 @@ const useStyles = makeStyles((theme: Theme) =>
3839
const BuildList: FunctionComponent = () => {
3940
const classes = useStyles();
4041
const history = useHistory();
41-
const { buildList, selectedBuildId } = useBuildState();
42+
const { buildList, selectedBuildId, loading } = useBuildState();
4243
const buildDispatch = useBuildDispatch();
4344

4445
return (
4546
<List>
46-
{buildList.map((build) => (
47-
<ListItem
48-
key={build.id}
49-
selected={selectedBuildId === build.id}
50-
button
51-
onClick={() => {
52-
selectBuild(buildDispatch, build.id);
53-
history.push({
54-
search: "buildId=" + build.id,
55-
});
56-
}}
57-
classes={{
58-
container: classes.listItem,
59-
}}
60-
>
61-
<ListItemText
62-
disableTypography
63-
primary={
64-
<Grid container>
65-
<Grid item>
66-
<Typography variant="subtitle2">{`#${build.id}`}</Typography>
67-
</Grid>
68-
</Grid>
69-
}
70-
secondary={
71-
<Grid container direction="column">
72-
<Grid item>
73-
<Typography variant="caption" color="textPrimary">
74-
{build.createdAt}
75-
</Typography>
47+
{loading ? (
48+
<SkeletonList />
49+
) : (
50+
buildList.map((build) => (
51+
<ListItem
52+
key={build.id}
53+
selected={selectedBuildId === build.id}
54+
button
55+
onClick={() => {
56+
selectBuild(buildDispatch, build.id);
57+
history.push({
58+
search: "buildId=" + build.id,
59+
});
60+
}}
61+
classes={{
62+
container: classes.listItem,
63+
}}
64+
>
65+
<ListItemText
66+
disableTypography
67+
primary={
68+
<Grid container>
69+
<Grid item>
70+
<Typography variant="subtitle2">{`#${build.id}`}</Typography>
71+
</Grid>
7672
</Grid>
77-
<Grid item>
78-
<Grid container justify="space-between">
79-
<Grid item>
80-
<Chip size="small" label={build.branchName} />
81-
</Grid>
82-
<Grid item>
83-
<BuildStatusChip status={build.status} />
73+
}
74+
secondary={
75+
<Grid container direction="column">
76+
<Grid item>
77+
<Typography variant="caption" color="textPrimary">
78+
{build.createdAt}
79+
</Typography>
80+
</Grid>
81+
<Grid item>
82+
<Grid container justify="space-between">
83+
<Grid item>
84+
<Chip size="small" label={build.branchName} />
85+
</Grid>
86+
<Grid item>
87+
<BuildStatusChip status={build.status} />
88+
</Grid>
8489
</Grid>
8590
</Grid>
8691
</Grid>
87-
</Grid>
88-
}
89-
/>
92+
}
93+
/>
9094

91-
<ListItemSecondaryAction className={classes.listItemSecondaryAction}>
92-
<IconButton
93-
onClick={() => {
94-
deleteBuild(buildDispatch, build.id);
95-
}}
95+
<ListItemSecondaryAction
96+
className={classes.listItemSecondaryAction}
9697
>
97-
<Delete />
98-
</IconButton>
99-
</ListItemSecondaryAction>
100-
</ListItem>
101-
))}
98+
<IconButton
99+
onClick={() => {
100+
deleteBuild(buildDispatch, build.id);
101+
}}
102+
>
103+
<Delete />
104+
</IconButton>
105+
</ListItemSecondaryAction>
106+
</ListItem>
107+
))
108+
)}
102109
</List>
103110
);
104111
};

0 commit comments

Comments
 (0)