import { format } from 'date-fns' import _ from 'lodash' import { prettyCourseName, WEEK_DAYS, withClasses } from '../../utils.jsx' export const Schedule = ({ timetables, selection, setSelection }) => { const events = timetables['tutti'] const selectionSet = new Set(selection) const visibleEvents = events.filter(e => selectionSet.has(e.id)) const eventsByWeekday = _.mapValues( _.groupBy(visibleEvents, e => e.start.getDay()), dailyEvents => _.groupBy(dailyEvents, e => e.start.getHours()) ) return (
{Object.entries(eventsByWeekday).map(([index, dailyEvents]) => ( <>
{WEEK_DAYS[index]}
{Object.values(dailyEvents).map(events => ( <>
{format(events[0].start, 'H:mm')}
{events.map(event => (
{ if (!selectionSet.has(event.id)) setSelection([...selection, event.id]) else setSelection( selection.filter(selId => selId !== event.id) ) }} >
{prettyCourseName(event.name)}
{format(event.start, 'H:mm')} –{' '} {format(event.end, 'H:mm')}
{event.aule.join(', ')}
))} ))} ))}
) }