@@ -21,6 +21,7 @@ import {
2121 selectBuild ,
2222} from "../contexts" ;
2323import { BuildStatusChip } from "./BuildStatusChip" ;
24+ import { SkeletonList } from "./SkeletonList" ;
2425
2526const useStyles = makeStyles ( ( theme : Theme ) =>
2627 createStyles ( {
@@ -38,67 +39,73 @@ const useStyles = makeStyles((theme: Theme) =>
3839const 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