count events per yearmonth in calendar

This commit is contained in:
2024-08-10 15:05:50 +02:00
parent 847d1b2343
commit 60a1b1d3d9

View File

@ -265,20 +265,32 @@ const EventCalendar = ({ events }: { events: EventFragment[] }) => {
return (
<>
<div className={styles.eventCalendar}>
{Object.keys(eventsByDate).map((yearMonth) => (
<div
key={yearMonth}
className={styles.calendarYearMonth}
data-collapsed={!visibleYearMonths.includes(yearMonth)}
>
<h2 onClick={() => toggleYearMonth(yearMonth)}>
{formatYearMonth(yearMonth)} <span className={styles.eventCounter}>({Object.keys(eventsByDate[yearMonth]).length})</span>
</h2>
{Object.keys(eventsByDate[yearMonth]).map((week) => (
<CalendarWeek key={week} days={eventsByDate[yearMonth][week]} />
))}
</div>
))}
{Object.keys(eventsByDate).map((yearMonth) => {
const eventCount = Object.values(eventsByDate[yearMonth]).reduce(
(yearMonthSum, week) =>
yearMonthSum +
Object.values(week).reduce(
(weekSum, day) => weekSum + day.length,
0
),
0
);
return (
<div
key={yearMonth}
className={styles.calendarYearMonth}
data-collapsed={!visibleYearMonths.includes(yearMonth)}
>
<h2 onClick={() => toggleYearMonth(yearMonth)}>
{formatYearMonth(yearMonth)}{" "}
<span className={styles.eventCounter}>({eventCount})</span>
</h2>
{Object.keys(eventsByDate[yearMonth]).map((week) => (
<CalendarWeek key={week} days={eventsByDate[yearMonth][week]} />
))}
</div>
);
})}
</div>
</>
);