import * as React from "react"; import Grid from "@material-ui/core/Grid"; import Typography from "@material-ui/core/Typography"; import Button from "@material-ui/core/Button"; import Card from '@material-ui/core/Card'; import CardActions from '@material-ui/core/CardActions'; import CardContent from '@material-ui/core/CardContent'; import Paper from "@material-ui/core/Paper"; import CircularProgress from "@material-ui/core/CircularProgress"; import { Link } from "react-router-dom"; import { ILevel } from "../models/level"; interface IProps { getLevels: () => Promise; setLevels: (levels: ILevel[]) => void; setLoading: (state: boolean) => void; loading: boolean; levels: ILevel[]; } export default class Dashboard extends React.Component { componentDidMount() { this.props.setLoading(true); // Fetch the levels this.props.getLevels().then(res => { this.props.setLevels(res); this.props.setLoading(false); }); } render() { if (this.props.loading) { return
; } const small = window.matchMedia("(max-width: 700px)").matches; const cName = small ? "lesson-card-xs" : "lesson-card-lg"; let key = 0; const levelToCard = (level: ILevel) => { return {`Level ${level.level}`} {level.name}
{level.description}
; }; return {this.props.levels.map(levelToCard)} } };