summaryrefslogtreecommitdiffstats
path: root/front/odiparpack/app/components/Widget/AreaChartWidget.js
diff options
context:
space:
mode:
Diffstat (limited to 'front/odiparpack/app/components/Widget/AreaChartWidget.js')
-rw-r--r--front/odiparpack/app/components/Widget/AreaChartWidget.js147
1 files changed, 147 insertions, 0 deletions
diff --git a/front/odiparpack/app/components/Widget/AreaChartWidget.js b/front/odiparpack/app/components/Widget/AreaChartWidget.js
new file mode 100644
index 0000000..8e17311
--- /dev/null
+++ b/front/odiparpack/app/components/Widget/AreaChartWidget.js
@@ -0,0 +1,147 @@
+import React, { PureComponent } from 'react';
+import PropTypes from 'prop-types';
+import { withStyles, createMuiTheme } from '@material-ui/core/styles';
+import classNames from 'classnames';
+import CardGiftcard from '@material-ui/icons/CardGiftcard';
+import FilterVintage from '@material-ui/icons/FilterVintage';
+import LocalCafe from '@material-ui/icons/LocalCafe';
+import Style from '@material-ui/icons/Style';
+import themePallete from 'ba-api/themePalette';
+import {
+ AreaChart,
+ Area,
+ XAxis,
+ YAxis,
+ CartesianGrid,
+ Tooltip,
+ ResponsiveContainer
+} from 'recharts';
+import messageStyles from 'ba-styles/Messages.scss';
+import { data1 } from 'ba-api/chartData';
+import Type from 'ba-styles/Typography.scss';
+import { purple } from '@material-ui/core/colors';
+import { Grid, Chip, Avatar, Divider, CircularProgress, Typography } from '@material-ui/core';
+import styles from './widget-jss';
+import PapperBlock from '../PapperBlock/PapperBlock';
+
+
+const theme = createMuiTheme(themePallete('magentaTheme'));
+const color = ({
+ primary: theme.palette.primary.main,
+ primarydark: theme.palette.primary.dark,
+ secondary: theme.palette.secondary.main,
+ secondarydark: theme.palette.secondary.dark,
+ third: purple[500],
+ thirddark: purple[900],
+});
+
+class AreaChartWidget extends PureComponent {
+ render() {
+ const {
+ classes,
+ } = this.props;
+ return (
+ <PapperBlock whiteBg noMargin title="Top Product Sales" desc="">
+ <Grid container spacing={2}>
+ <Grid item md={8} xs={12}>
+ <ul className={classes.bigResume}>
+ <li>
+ <Avatar className={classNames(classes.avatar, classes.pinkAvatar)}>
+ <CardGiftcard />
+ </Avatar>
+ <Typography variant="h6">
+ 4321
+ <Typography>Gift Card</Typography>
+ </Typography>
+ </li>
+ <li>
+ <Avatar className={classNames(classes.avatar, classes.purpleAvatar)}>
+ <FilterVintage />
+ </Avatar>
+ <Typography variant="h6">
+ 9876
+ <Typography>Flowers</Typography>
+ </Typography>
+ </li>
+ <li>
+ <Avatar className={classNames(classes.avatar, classes.blueAvatar)}>
+ <LocalCafe />
+ </Avatar>
+ <Typography variant="h6">
+ 345
+ <Typography>Cups</Typography>
+ </Typography>
+ </li>
+ <li>
+ <Avatar className={classNames(classes.avatar, classes.tealAvatar)}>
+ <Style />
+ </Avatar>
+ <Typography variant="h6">
+ 996
+ <Typography>Name Cards</Typography>
+ </Typography>
+ </li>
+ </ul>
+ <div className={classes.chartWrap}>
+ <div className={classes.chartFluid}>
+ <ResponsiveContainer>
+ <AreaChart
+ width={600}
+ height={300}
+ data={data1}
+ margin={{
+ top: 5,
+ right: 30,
+ left: 20,
+ bottom: 5
+ }}
+ >
+ <XAxis dataKey="name" />
+ <YAxis />
+ <CartesianGrid strokeDasharray="3 3" />
+ <Tooltip />
+ <Area type="monotone" dataKey="uv" stackId="1" stroke={color.primarydark} fillOpacity="0.8" fill={color.primary} />
+ <Area type="monotone" dataKey="pv" stackId="1" stroke={color.secondarydark} fillOpacity="0.8" fill={color.secondary} />
+ <Area type="monotone" dataKey="amt" stackId="1" stroke={color.thirddark} fillOpacity="0.8" fill={color.third} />
+ </AreaChart>
+ </ResponsiveContainer>
+ </div>
+ </div>
+ </Grid>
+ <Grid item md={4} xs={12}>
+ <Typography variant="button"><span className={Type.bold}>Performance Listing</span></Typography>
+ <Divider className={classes.divider} />
+ <Grid container className={classes.secondaryWrap}>
+ <Grid item className={classes.centerItem} md={6}>
+ <Typography gutterBottom>Giftcard Quality</Typography>
+ <Chip label="Super" className={classNames(classes.chip, messageStyles.bgError)} />
+ <CircularProgress variant="determinate" className={classNames(classes.progressCircle, classes.pinkProgress)} size={100} value={70} />
+ </Grid>
+ <Grid className={classes.centerItem} item md={6}>
+ <Typography gutterBottom>Monitoring Quality</Typography>
+ <Chip label="Good" className={classNames(classes.chip, messageStyles.bgSuccess)} />
+ <CircularProgress variant="determinate" className={classNames(classes.progressCircle, classes.greenProgress)} size={100} value={57} />
+ </Grid>
+ <Grid className={classes.centerItem} item md={6}>
+ <Typography gutterBottom>Project Complete</Typography>
+ <Chip label="Poor" className={classNames(classes.chip, messageStyles.bgWarning)} />
+ <CircularProgress variant="determinate" className={classNames(classes.progressCircle, classes.orangeProgress)} size={100} value={28} />
+ </Grid>
+ <Grid className={classes.centerItem} item md={6}>
+ <Typography gutterBottom>Deploy Progress</Typography>
+ <Chip label="Medium" className={classNames(classes.chip, messageStyles.bgInfo)} />
+ <CircularProgress variant="determinate" className={classNames(classes.progressCircle, classes.blueProgress)} size={100} value={70} />
+ </Grid>
+ </Grid>
+ </Grid>
+ </Grid>
+ </PapperBlock>
+ );
+ }
+}
+
+AreaChartWidget.propTypes = {
+ classes: PropTypes.object.isRequired,
+};
+
+export default withStyles(styles)(AreaChartWidget);