added loading component for prices close #22

This commit is contained in:
2020-04-18 22:04:43 +02:00
parent eb7b373774
commit 76c047c26d
2 changed files with 60 additions and 24 deletions

View File

@@ -5,25 +5,25 @@ import {
import { import {
useParams useParams
} from "react-router-dom"; } from "react-router-dom";
import CircularProgress from '@material-ui/core/CircularProgress';
import Card from '@material-ui/core/Card';
import CardContent from '@material-ui/core/CardContent';
import Typography from '@material-ui/core/Typography';
import { makeStyles } from '@material-ui/core/styles';
import Grid from '@material-ui/core/Grid';
export default function ResourceChart(props) { const useStyles = makeStyles((theme) => ({
root: {
const [data, setData] = React.useState(null); display: 'flex',
let { id } = useParams(); },
const loadData = async () => { }));
let nextData = await fetch(`/simcompanies/API/day?date=${props["day"]}&kind=${id}`);
nextData = await nextData.json();
for (let i = 0; i < nextData.length; i++) {
nextData[i]["time"] = new Date(nextData[i]["time"]);
nextData[i]["time"] = nextData[i]["time"].toLocaleTimeString();
}
setData(nextData)
}
const output = (data) => {
if (data === null) { if (data === null) {
loadData(); return (
} <CircularProgress color="secondary" />
)
} else {
return ( return (
<LineChart <LineChart
width={900} width={900}
@@ -40,5 +40,49 @@ export default function ResourceChart(props) {
<Legend /> <Legend />
<Line type="monotone" dataKey="price" stroke="#8884d8" dot={false} /> <Line type="monotone" dataKey="price" stroke="#8884d8" dot={false} />
</LineChart> </LineChart>
)
}
}
export default function ResourceChart(props) {
const classes = useStyles();
const [data, setData] = React.useState(null);
let { id } = useParams();
const loadData = async () => {
let nextData = await fetch(`/simcompanies/API/day?date=${props["day"]}&kind=${id}`);
nextData = await nextData.json();
for (let i = 0; i < nextData.length; i++) {
nextData[i]["time"] = new Date(nextData[i]["time"]);
nextData[i]["time"] = nextData[i]["time"].toLocaleTimeString();
}
setData(nextData)
}
if (data === null) {
loadData();
}
return (
<div className={classes.root}>
<Grid container spacing={2}>
<Grid item xs={12}>
<Typography variant="h4">
Resource Chart
</Typography>
</Grid>
<Grid item xs={12}>
<Card>
<CardContent>
{output(data)}
</CardContent>
</Card>
</Grid>
</Grid>
</div>
); );
} }

View File

@@ -1,14 +1,6 @@
import React from 'react'; import React from 'react';
import { makeStyles } from '@material-ui/core/styles'; import { makeStyles } from '@material-ui/core/styles';
import Card from '@material-ui/core/Card';
import CardContent from '@material-ui/core/CardContent';
import Typography from '@material-ui/core/Typography';
import Grid from '@material-ui/core/Grid'; import Grid from '@material-ui/core/Grid';
import { Link } from 'react-router-dom';
import Link1 from '@material-ui/core/Link';
import ListItem from '@material-ui/core/ListItem';
import ListItemText from '@material-ui/core/ListItemText';
import CardMedia from '@material-ui/core/CardMedia';
import ResourceCard from './resourceCard'; import ResourceCard from './resourceCard';