Progress - rkaku/webpack-crash-course GitHub Wiki

Linear Query

import React from 'react';
import { makeStyles, withStyles } from '@material-ui/core/styles';
import LinearProgress from '@material-ui/core/LinearProgress';

const ColorLinearProgress = withStyles({
  colorPrimary: {
    backgroundColor: '#fe6b8b',
  },
  barColorPrimary: {
    backgroundColor: '#ff8e53',
  },
})(LinearProgress);

const useStyles = makeStyles(theme => ({
  root: {
    width: '100%',
    '& > * + *': {
      marginTop: theme.spacing(0),
    },
  },
}));

export default function CustomizedProgressBars() {
  const classes = useStyles();

  return (
    <div className={classes.root}>
      <ColorLinearProgress variant="query" className={classes.margin} />
      <ColorLinearProgress variant="query" className={classes.margin} />
      <ColorLinearProgress variant="query" className={classes.margin} />
    </div>
  );
}

Circular

import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import Fade from '@material-ui/core/Fade';
import Button from '@material-ui/core/Button';
import CircularProgress from '@material-ui/core/CircularProgress';
import Typography from '@material-ui/core/Typography';
import Fab from '@material-ui/core/Fab';
// import PetsOutlinedIcon from '@material-ui/icons/PetsOutlined';

const useStyles = makeStyles(theme => ({
  root: {
    display: 'flex',
    flexDirection: 'column',
    alignItems: 'center',
  },
  button: {
    margin: theme.spacing(2),
  },
  placeholder: {
    height: 50,
  },
}));

export default function DelayingAppearance() {
  const classes = useStyles();
  const [query, setQuery] = React.useState('idle');
  const timerRef = React.useRef();

  React.useEffect(
    () => () => {
      clearTimeout(timerRef.current);
    },
    [],
  );

  const handleClickQuery = () => {
    clearTimeout(timerRef.current);

    if (query !== 'idle') {
      setQuery('idle');
      return;
    }

    setQuery('progress');
    timerRef.current = setTimeout(() => {
      setQuery('success');
    }, 6789);
  };

  return (
    <div className={classes.root}>
      <div className={classes.placeholder}>
        {query === 'success' ? (
          <Typography>Success!</Typography>
        ) : (
          <Fade
            in={query === 'progress'}
            style={{
              transitionDelay: query === 'progress' ? '1111ms' : '0ms',
            }}
            unmountOnExit
          >
            <CircularProgress />
          </Fade>
        )}
      </div>
      <Fab
        variant="extended"
        aria-label="mine"
        // className={classes.fab}
        onClick={handleClickQuery}
        className={classes.button}
      >
        {query !== 'idle' ? 'Now Mining...' : 'Start Mining'}
      </Fab>
    </div>
  );
}
⚠️ **GitHub.com Fallback** ⚠️