diff --git a/packages/web/src/components/Calendar.astro b/packages/web/src/components/Calendar.astro index 2133436..17ba501 100644 --- a/packages/web/src/components/Calendar.astro +++ b/packages/web/src/components/Calendar.astro @@ -12,11 +12,19 @@ const timeMin = 8; const timeMax = 22; const timeStep = 1; -function cells(callback: (time: number) => JSX.Element) { +function cells( + label: (time: number) => JSX.Element, + cell: (weekday: number, time: number) => JSX.Element, +) { return Array.from({ length: (timeMax - timeMin + 1) / timeStep }).map( (_, i) => { const time = timeMin + i * timeStep; - return callback(time); + return ( +
+ {label(time)} + {Array.from({ length: 7 }).map((_, weekday) => cell(weekday, time))} +
+ ); }, ); } @@ -28,30 +36,17 @@ function formatTime(time: number): string { } --- -
-
-
- { - cells((time) => ( -
- {formatTime(time)} -
-
- )) - } -
- +
{ - Array.from({ length: 7 }).map((_, weekday) => ( -
- {cells((time) => ( -
- {weekday} - {formatTime(time)} -
- ))} -
- )) + cells( + (time) =>
{formatTime(time)}
, + (weekday, time) => ( +
+ {weekday} - {formatTime(time)} +
+ ), + ) }