This commit is contained in:
Janus Knudsen 2025-09-09 14:35:21 +02:00
parent 727a6ec53a
commit 72019a3d9a
15 changed files with 1056 additions and 1230 deletions

View file

@ -63,6 +63,8 @@ export class EventManager {
return resourceData.resources.flatMap(resource =>
resource.events.map(event => ({
...event,
start: new Date(event.start),
end: new Date(event.end),
resourceName: resource.name,
resourceDisplayName: resource.displayName,
resourceEmployeeId: resource.employeeId
@ -70,7 +72,11 @@ export class EventManager {
);
}
return data as CalendarEvent[];
return data.map((event: any) => ({
...event,
start: new Date(event.start),
end: new Date(event.end)
}));
}
/**
@ -115,15 +121,14 @@ export class EventManager {
}
try {
const eventDate = new Date(event.start);
if (isNaN(eventDate.getTime())) {
if (isNaN(event.start.getTime())) {
console.warn(`EventManager: Invalid event start date for event ${id}:`, event.start);
return null;
}
return {
event,
eventDate
eventDate: event.start
};
} catch (error) {
console.warn(`EventManager: Failed to parse event date for event ${id}:`, error);
@ -171,12 +176,8 @@ export class EventManager {
// Filter events using optimized date operations
const filteredEvents = this.events.filter(event => {
// Use DateCalculator for consistent date parsing
const eventStart = new Date(event.start);
const eventEnd = new Date(event.end);
// Event overlaps period if it starts before period ends AND ends after period starts
return eventStart <= endDate && eventEnd >= startDate;
return event.start <= endDate && event.end >= startDate;
});
// Cache the result