import { useEffect, useRef } from 'preact/hooks' import _ from 'lodash' import { differenceInMinutes, startOfDay } from 'date-fns' import { hashString, normalizeCourseName, WEEK_DAYS } from '../../utils.jsx' import { layoutIntervals } from '../../interval-layout.js' export const WorkWeekTranspose = ({ events }) => { const eventsByWeekday = _.groupBy(events, event => event.start.getDay()) // For each weekday compute the interval layout const rowLayouts = _.mapValues(eventsByWeekday, events => layoutIntervals( events.map(e => ({ start: differenceInMinutes(e.start, startOfDay(e.start)), end: differenceInMinutes(e.end, startOfDay(e.start)), data: e, })) ) ) return (