Skip to content

Commit 31ff128

Browse files
feat: add event cont for day, month and year (#565)
* feat: add event cont for day, month and year * chore: clean up * refactor: remove console.log * refactor: @gouz feedback * refactor: typo + run prettier
1 parent b44f2a0 commit 31ff128

File tree

5 files changed

+39
-6
lines changed

5 files changed

+39
-6
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const getCountText = count => {
2+
if (count) {
3+
const plural = count > 1 ? 's' : '';
4+
return `${count} event${plural}`;
5+
}
6+
return 'no event';
7+
};
8+
9+
const EventCount = ({events}) => {
10+
return <p className="eventCount">{getCountText(events.length)}</p>;
11+
};
12+
export default EventCount;

page/src/components/SelectedEvents/SelectedEvents.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {useMemo, useRef, useState} from 'react';
22

33
import 'styles/SelectedEvents.css';
44
import EventDisplay from '../EventDisplay/EventDisplay';
5+
import EventCount from '../EventCount/EventCount'
56
import {formatDate, getMonthName} from '../../utils';
67
import {useCustomContext} from 'app.context';
78
import { ArrowLeftCircle, ArrowRightCircle } from 'lucide-react';
@@ -97,7 +98,8 @@ const SelectedEvents = ({year, month, date}) => {
9798
{previous}
9899
<span>{getMonthName(month) || formatDate(date)}</span>
99100
{next}
100-
</h3>
101+
</h3>
102+
<EventCount events={events} />
101103
<div className="eventsGridDisplay">{events}</div>
102104
</>
103105
) : (

page/src/components/YearSelector/YearSelector.jsx

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,21 @@ import { ArrowLeftCircle, ArrowRightCircle } from 'lucide-react';
44

55

66
import 'styles/YearSelector.css';
7+
import { getYearEvents } from 'utils';
8+
import EventCount from 'components/EventCount/EventCount';
79

8-
const YearSelector = ({year, onChange}) => {
10+
const YearSelector = ({ year, onChange }) => {
911
return (
10-
<div className="yearNavigator">
11-
<ArrowLeftCircle onClick={() => onChange(year - 1)} />
12-
<h2 className="bigYearLabel">{year}</h2>
13-
<ArrowRightCircle onClick={() => onChange(year + 1)} />
12+
<div>
13+
<div className="yearNavigator">
14+
<ArrowLeftCircle onClick={() => onChange(year - 1)} />
15+
<h2 className="bigYearLabel">{year}</h2>
16+
<ArrowRightCircle onClick={() => onChange(year + 1)} />
17+
18+
</div>
19+
<div>
20+
<EventCount events={getYearEvents(year)} />
21+
</div>
1422
</div>
1523
);
1624
};

page/src/styles/SelectedEvents.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,8 @@
2020
.eventDateDisplay span {
2121
padding: 0 1rem;
2222
}
23+
24+
.eventCount {
25+
text-align: center;
26+
font-weight: normal;
27+
}

page/src/utils.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ export const getEventsByYear = () => {
3030
window.dev_events = events;
3131
};
3232

33+
export const getYearEvents = (year) => {
34+
const events = allEvents.filter(e => new Date(e.date[0]).getFullYear() === year)
35+
36+
return events
37+
}
38+
3339
export const hasEvents = (year) => Boolean(allEvents.find(e => new Date(e.date[0]).getFullYear() === year))
3440

3541
const lpad2 = number => ('0' + number).slice(-2);

0 commit comments

Comments
 (0)