1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import classNames from 'classnames';
import tableStyles from 'ba-styles/Table.scss';
import messageStyles from 'ba-styles/Messages.scss';
import progressStyles from 'ba-styles/Progress.scss';
import {
Toolbar,
Typography,
Table,
TableBody,
TableCell,
TableHead,
TableRow,
Paper,
Chip,
LinearProgress,
} from '@material-ui/core';
const styles = theme => ({
root: {
width: '100%',
marginTop: theme.spacing(3),
overflowX: 'auto',
},
chip: {
margin: theme.spacing(1),
fontWeight: 'bold',
color: '#FFF'
},
});
let id = 0;
function createData(name, progress, status) {
id += 1;
return {
id,
name,
progress,
status,
};
}
const data = [
createData('Frozen yoghurt', 24, 'Error'),
createData('Ice cream sandwich', 37, 'Warning'),
createData('Eclair', 24, 'Info'),
createData('Cupcake', 67, 'Default'),
createData('Gingerbread', 89, 'Success'),
];
function StatusLabel(props) {
const { classes } = props;
const getStatus = status => {
switch (status) {
case 'Error': return messageStyles.bgError;
case 'Warning': return messageStyles.bgWarning;
case 'Info': return messageStyles.bgInfo;
case 'Success': return messageStyles.bgSuccess;
default: return messageStyles.bgDefault;
}
};
const getProgress = status => {
switch (status) {
case 'Error': return progressStyles.bgError;
case 'Warning': return progressStyles.bgWarning;
case 'Info': return progressStyles.bgInfo;
case 'Success': return progressStyles.bgSuccess;
default: return progressStyles.bgDefault;
}
};
return (
<Paper className={classes.root}>
<Toolbar>
<div className={classes.title}>
<Typography variant="h6">Nutrition</Typography>
</div>
</Toolbar>
<Table className={classNames(classes.table, tableStyles.stripped)}>
<TableHead>
<TableRow>
<TableCell>Dessert (100g serving)</TableCell>
<TableCell>Progress</TableCell>
<TableCell>Status</TableCell>
</TableRow>
</TableHead>
<TableBody>
{data.map(n => ([
<TableRow key={n.id}>
<TableCell>{n.name}</TableCell>
<TableCell align="right">
<LinearProgress variant="determinate" className={getProgress(n.status)} value={n.progress} />
</TableCell>
<TableCell>
<Chip label={n.status} className={classNames(classes.chip, getStatus(n.status))} />
</TableCell>
</TableRow>
])
)}
</TableBody>
</Table>
</Paper>
);
}
StatusLabel.propTypes = {
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(StatusLabel);
|