import React, { useState, useEffect } from 'react'; import { BrowserRouter as Router, Switch, Route, Link, useParams } from 'react-router-dom'; import './light.css'; import { Container, Divider, Dropdown, Form, Grid, Header, Icon, Image, Menu, Message, Segment, Table } from 'semantic-ui-react'; import moment from 'moment'; import { BasicTable, requester } from './utils.js'; import { NotFound, PleaseLogin } from './Misc.js'; function ClassTable(props) { const { classes } = props; const getInstructor = (session) => session.instructor ? session.instructor.first_name : session.old_instructor; return ( Name Date Time Instructor Cost Students {classes.length ? classes.map((x, i) => {x.course.name} {moment.utc(x.datetime).format('ll')} {moment.utc(x.datetime).format('LT')} {getInstructor(x)} {x.cost === '0.00' ? 'Free' : '$'+x.cost} {x.student_count} ) :

None

}
); }; export function Classes(props) { const [classes, setClasses] = useState(false); const { token } = props; useEffect(() => { requester('/sessions/', 'GET', token) .then(res => { setClasses(res.results); }) .catch(err => { console.log(err); }); }, []); const now = new Date().toISOString(); return (
Class List
Upcoming
{classes ? x.datetime > now)} /> :

Loading...

}
Recent
{classes ? x.datetime < now)} /> :

Loading...

}
); }; export function ClassDetail(props) { const [clazz, setClass] = useState(false); const [error, setError] = useState(false); const { token } = props; const { id } = useParams(); useEffect(() => { requester('/sessions/'+id+'/', 'GET', token) .then(res => { setClass(res); }) .catch(err => { console.log(err); setError(true); }); }, []); const getInstructor = (session) => session.instructor ? session.instructor.first_name : session.old_instructor; return ( {!error ? clazz ?
Class Details
Name: {clazz.course.name} Date: {moment.utc(clazz.datetime).format('ll')} Time: {moment.utc(clazz.datetime).format('LT')} Instructor: {getInstructor(clazz)} Cost: {clazz.cost === '0.00' ? 'Free' : '$'+clazz.cost} Students: {clazz.student_count}
Attendance
:

Loading...

: }
); };