diff --git a/components/calendar/calendar-client.tsx b/components/calendar/calendar-client.tsx index 6846aaa6..0c91d549 100644 --- a/components/calendar/calendar-client.tsx +++ b/components/calendar/calendar-client.tsx @@ -1209,33 +1209,63 @@ export function CalendarClient({ initialCalendars, userId, userProfile }: Calend -
- - setEventForm({ ...eventForm, start: date?.toISOString() || "" })} - showTimeSelect - timeFormat="HH:mm" - timeIntervals={15} - dateFormat="dd/MM/yyyy HH:mm" - placeholderText="Sélectionner une date et heure" - className="w-full" - /> -
+
+
+ +
+
+ } + /> +
+ } + /> +
+
-
- - setEventForm({ ...eventForm, end: date?.toISOString() || "" })} - showTimeSelect - timeFormat="HH:mm" - timeIntervals={15} - dateFormat="dd/MM/yyyy HH:mm" - placeholderText="Sélectionner une date et heure" - className="w-full" - minDate={eventForm.start ? new Date(eventForm.start) : undefined} - /> +
+ +
+
+ } + minDate={getDateFromString(eventForm.start)} + /> +
+ } + /> +
+
diff --git a/components/calendar/calendar-widget.tsx b/components/calendar/calendar-widget.tsx index 9961eec1..4060e003 100644 --- a/components/calendar/calendar-widget.tsx +++ b/components/calendar/calendar-widget.tsx @@ -32,31 +32,38 @@ export function CalendarWidget() { const fetchUpcomingEvents = async () => { try { setLoading(true); - const now = new Date(); - const nextWeek = addDays(now, 7); - - // Fetch events directly from the calendar API - const eventsRes = await fetch( - `/api/calendar?start=${now.toISOString()}&end=${nextWeek.toISOString()}` - ); - - if (!eventsRes.ok) { + + // Fetch calendars with events from the correct endpoint + const response = await fetch('/api/calendars'); + if (!response.ok) { throw new Error("Impossible de charger les événements"); } - const eventsData = await eventsRes.json(); - - // Sort events by start date and limit to 5 - const sortedEvents = eventsData - .sort((a: Event, b: Event) => new Date(a.start).getTime() - new Date(b.start).getTime()) - .slice(0, 5) - .map((event: Event) => ({ + const calendarsData = await response.json(); + + // Extract and process events from all calendars + const allEvents = calendarsData.flatMap((calendar: any) => + (calendar.events || []).map((event: any) => ({ ...event, + calendarColor: calendar.color, + calendarName: calendar.name, start: new Date(event.start), - end: new Date(event.end), - })); + end: new Date(event.end) + })) + ); - setEvents(sortedEvents); + // Filter events for the next 7 days + const now = new Date(); + const nextWeek = addDays(now, 7); + const upcomingEvents = allEvents + .filter((event: Event) => { + const eventStart = new Date(event.start); + return eventStart >= now && eventStart <= nextWeek; + }) + .sort((a: Event, b: Event) => a.start.getTime() - b.start.getTime()) + .slice(0, 5); + + setEvents(upcomingEvents); } catch (err) { console.error("Erreur lors du chargement des événements:", err); setError("Impossible de charger les événements à venir");