From f76a0f4b0e488530c1e715ecaa824fca7790dddd Mon Sep 17 00:00:00 2001
From: Eug-VS <eug-vs@keemail.me>
Date: Mon, 6 Jan 2020 01:53:47 +0300
Subject: Delay scoreboard update, add progress indicator

Wait for the Header>Tabs>Indicator to get into place so it doesn't
freeze when it comes to rendering new massive frame.
---
 src/components/Scoreboard/Scoreboard.js | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

(limited to 'src/components')

diff --git a/src/components/Scoreboard/Scoreboard.js b/src/components/Scoreboard/Scoreboard.js
index 47e306e..93ec2f0 100644
--- a/src/components/Scoreboard/Scoreboard.js
+++ b/src/components/Scoreboard/Scoreboard.js
@@ -6,25 +6,30 @@ import {
   Grid,
 } from "@material-ui/core";
 
+import { makeStyles } from "@material-ui/core/styles";
+import LinearProgress from '@material-ui/core/LinearProgress';
+
 import { get } from "../../requests";
 import SolutionCard from "../SolutionCard/SolutionCard";
-import { makeStyles } from "@material-ui/core/styles";
 
 
 const useStyles = makeStyles(theme => ({
   pageHeader: {
     textAlign: 'center',
     margin: theme.spacing(2),
-  }
+  },
 }));
 
 const Scoreboard = () => {
   const classes = useStyles();
   const [solutions, setSolutions] = useState([]);
 
-  const updateSolutions = async () => {
-    const response = await get('solutions/');
-    await setSolutions(response.data);
+  const updateSolutions = () => {
+    get('solutions/').then(response => {
+      setTimeout(() => {
+        setSolutions(response.data);
+      }, 250);
+    });
   };
 
   const removeSolution = (id) => {
@@ -40,6 +45,7 @@ const Scoreboard = () => {
       <Typography variant="h3" className={classes.pageHeader}>
         Scoreboard
       </Typography>
+      {(solutions.length === 0) && <LinearProgress color="secondary" />}
       <Grid container justify="center" direction="column" spacing={3}>
         {solutions.map(solution => (
           <Grid item key={solution.id}>
-- 
cgit v1.2.3