import React, { useState } from 'react'; import Avatar from '@material-ui/core/Avatar'; import Button from '@material-ui/core/Button'; import CssBaseline from '@material-ui/core/CssBaseline'; import TextField from '@material-ui/core/TextField'; import FormControlLabel from '@material-ui/core/FormControlLabel'; import Checkbox from '@material-ui/core/Checkbox'; import Link from '@material-ui/core/Link'; import Grid from '@material-ui/core/Grid'; import Box from '@material-ui/core/Box'; import ScheduleIcon from '@material-ui/icons/Schedule'; import Typography from '@material-ui/core/Typography'; import { makeStyles } from '@material-ui/core/styles'; import Container from '@material-ui/core/Container'; import Divider from '@material-ui/core/Divider'; import List from '@material-ui/core/List'; import ListSubheader from '@material-ui/core/ListSubheader'; import { CircularProgress } from '@material-ui/core'; import { useTheme } from '@material-ui/core/styles'; import { useMediaQuery, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from '@material-ui/core'; import axios from 'axios'; import RuzCard from './RuzCard.js'; import RuzDialog from './RuzDialog.js'; const useStyles = makeStyles(theme => ({ paper: { marginTop: theme.spacing(3), display: 'flex', flexDirection: 'column', alignItems: 'center', width: '100%', }, schedule: { width: '100%', backgroundColor: theme.palette.background.paper, }, avatar: { margin: theme.spacing(1), backgroundColor: theme.palette.secondary.main, }, stickyHeader: { background: 'inherit', }, fixUl: { padding: 0, background: 'inherit', }, centerProgress: { position: 'absolute', top: '50%', verticalAlign: 'middle', }, dateHeader: { textTransform: 'capitalize', color: 'teal', }, })); function RuzListDate(props) { const items = props.items; const date = new Date(props.date); const datestring = date.toLocaleDateString('ru-RU', {weekday: 'short', day: 'numeric', month: 'long'}) const classes = useStyles(); return ( {datestring} { items.map(item => { return ( props.onClickForward(item)} item={item} /> ); }) } ); } export default function RuzList(props) { const classes = useStyles(); const [ items, setItems ] = useState([]); const [ needUpdate, setNeedUpdate ] = useState(true); const [ openDialog, setOpenDialog ] = useState(null); if (needUpdate) { axios({ method: 'GET', url: 'http://cors.hell.fcked.net/api/schedule/group/11235', params: { start: '2019.12.16', finish: '2019.12.23', lng: '1', }, }).then(resp => { setNeedUpdate(false); const data = {}; for (let [id, item] of resp.data.entries()) { if (!item) continue; item.id = id; item.date in data ? data[item.date].push(item) : data[item.date] = [item]; } setItems(data); }); } console.log(openDialog); const dialogCloseAction = () => { setOpenDialog(null); } let progressBar = (); if (needUpdate) { progressBar = (); } const dates = [...Object.keys(items)].sort(); return (
{progressBar}
); }