Skip to content

Commit 3b9afcc

Browse files
Replace custom calendar with react-calendar
Replace the custom calendar component with `react-calendar` in the `Calendar` component. * **Calendar Component:** - Import `Calendar` from `react-calendar`. - Replace the custom calendar grid with the `react-calendar` component. - Map events to `react-calendar`'s tile content. * **Community Component:** - Update the import statement to use `CustomCalendar` instead of `Calendar`. - Ensure the `CustomCalendar` component is used with the correct props. * **Dependencies:** - Add `react-calendar` to `package.json` and `package-lock.json`.
1 parent 17f8b62 commit 3b9afcc

File tree

4 files changed

+130
-33
lines changed

4 files changed

+130
-33
lines changed

package-lock.json

+114-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@
1515
"@fortawesome/free-regular-svg-icons": "^6.7.2",
1616
"@fortawesome/free-solid-svg-icons": "^6.7.2",
1717
"@fortawesome/react-fontawesome": "^0.2.2",
18-
"papaparse": "^5.3.0",
1918
"lucide-react": "^0.344.0",
19+
"papaparse": "^5.3.0",
2020
"react": "^18.3.1",
21+
"react-calendar": "^5.1.0",
2122
"react-dom": "^18.3.1",
2223
"react-router-dom": "^7.2.0"
2324
},
@@ -31,11 +32,11 @@
3132
"eslint-plugin-react-hooks": "^5.1.0-rc.0",
3233
"eslint-plugin-react-refresh": "^0.4.11",
3334
"globals": "^15.9.0",
35+
"lucide-react": "^0.344.0",
3436
"postcss": "^8.4.35",
3537
"tailwindcss": "^3.4.1",
3638
"typescript": "^5.5.3",
3739
"typescript-eslint": "^8.3.0",
38-
"vite": "^5.4.2",
39-
"lucide-react": "^0.344.0"
40+
"vite": "^5.4.2"
4041
}
4142
}

src/components/Calendar.tsx

+10-25
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React from 'react';
2+
import Calendar from 'react-calendar';
23

34
interface Event {
45
date: string;
@@ -9,36 +10,20 @@ interface CalendarProps {
910
events: Event[];
1011
}
1112

12-
const Calendar: React.FC<CalendarProps> = ({ events }) => {
13-
const renderCalendar = () => {
14-
// Create a calendar grid for 2025
15-
const months = [
16-
'January', 'February', 'March', 'April', 'May', 'June',
17-
'July', 'August', 'September', 'October', 'November'
18-
];
19-
20-
return months.map((month, index) => (
21-
<div key={index} className="calendar-month">
22-
<h3 className="text-lg font-bold mb-2">{month}</h3>
23-
<div className="calendar-grid">
24-
{events
25-
.filter(event => new Date(event.date).getMonth() === index)
26-
.map((event, idx) => (
27-
<div key={idx} className="calendar-event">
28-
<span>{new Date(event.date).getDate()}</span>
29-
<span>{event.title}</span>
30-
</div>
31-
))}
32-
</div>
33-
</div>
34-
));
13+
const CustomCalendar: React.FC<CalendarProps> = ({ events }) => {
14+
const tileContent = ({ date, view }: { date: Date; view: string }) => {
15+
if (view === 'month') {
16+
const event = events.find(event => new Date(event.date).toDateString() === date.toDateString());
17+
return event ? <div className="calendar-event">{event.title}</div> : null;
18+
}
19+
return null;
3520
};
3621

3722
return (
3823
<div className="calendar-container">
39-
{renderCalendar()}
24+
<Calendar tileContent={tileContent} />
4025
</div>
4126
);
4227
};
4328

44-
export default Calendar;
29+
export default CustomCalendar;

src/components/Community.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { useState, useEffect } from 'react';
2-
import Calendar from './Calendar';
2+
import CustomCalendar from './Calendar';
33
import UpcomingEvents from './UpcomingEvents';
44
import { fetchEvents } from '../utils/events';
55

@@ -21,7 +21,7 @@ const Community: React.FC = () => {
2121
<p className="text-xl text-gray-600">
2222
Welcome to the community page! Here you can find information about our community events, forums, and how to get involved.
2323
</p>
24-
<Calendar events={events} />
24+
<CustomCalendar events={events} />
2525
<UpcomingEvents events={events} />
2626
</div>
2727
);

0 commit comments

Comments
 (0)