diff --git a/src/managers/AllDayManager.ts b/src/managers/AllDayManager.ts index f601c5a..bf11c70 100644 --- a/src/managers/AllDayManager.ts +++ b/src/managers/AllDayManager.ts @@ -127,14 +127,14 @@ export class AllDayManager { eventBus.on('header:ready', (event: Event) => { let headerReadyEventPayload = (event as CustomEvent).detail; - var startDate = headerReadyEventPayload.headerElements.startDate; - var endDate = headerReadyEventPayload.headerElements.endDate; + let startDate = new Date(headerReadyEventPayload.headerElements.at(0)!.date); + let endDate = new Date(headerReadyEventPayload.headerElements.at(-1)!.date); var events: CalendarEvent[] = this.eventManager.getEventsForPeriod(startDate, endDate); // Filter for all-day events const allDayEvents = events.filter(event => event.allDay); - - var eventLayouts = this.calculateAllDayEventsLayout(allDayEvents, headerReadyEventPayload.headerElements) + + let eventLayouts = this.calculateAllDayEventsLayout(allDayEvents, headerReadyEventPayload.headerElements) this.allDayEventRenderer.renderAllDayEventsForPeriod(eventLayouts); this.checkAndAnimateAllDayHeight(); @@ -304,14 +304,14 @@ export class AllDayManager { * Calculate layout for ALL all-day events using AllDayLayoutEngine * This is the correct method that processes all events together for proper overlap detection */ - private calculateAllDayEventsLayout(events: CalendarEvent[], weekDates: ColumnBounds[]): EventLayout[] { + private calculateAllDayEventsLayout(events: CalendarEvent[], dayHeaders: ColumnBounds[]): EventLayout[] { // Store current state this.currentAllDayEvents = events; - this.currentWeekDates = weekDates; + this.currentWeekDates = dayHeaders; // Initialize layout engine with provided week dates - var layoutEngine = new AllDayLayoutEngine(weekDates); + let layoutEngine = new AllDayLayoutEngine(dayHeaders.map(column => column.date)); // Calculate layout for all events together - AllDayLayoutEngine handles CalendarEvents directly return layoutEngine.calculateLayout(events); diff --git a/src/managers/HeaderManager.ts b/src/managers/HeaderManager.ts index 77f5bcf..b884979 100644 --- a/src/managers/HeaderManager.ts +++ b/src/managers/HeaderManager.ts @@ -5,8 +5,6 @@ import { CoreEvents } from '../constants/CoreEvents'; import { HeaderRenderContext } from '../renderers/HeaderRenderer'; import { ResourceCalendarData } from '../types/CalendarTypes'; import { DragMouseEnterHeaderEventPayload, DragMouseLeaveHeaderEventPayload, HeaderReadyEventPayload } from '../types/EventTypes'; -import { DateCalculator } from '../utils/DateCalculator'; -import { PositionUtils } from '../utils/PositionUtils'; import { ColumnDetectionUtils } from '../utils/ColumnDetectionUtils'; /** @@ -138,10 +136,6 @@ export class HeaderManager { // Setup event listeners on the new content this.setupHeaderDragListeners(); - // Calculate period from current date - const weekStart = DateCalculator.getISOWeekStart(currentDate); - const weekEnd = DateCalculator.addDays(weekStart, 6); - // Notify other managers that header is ready with period data const payload: HeaderReadyEventPayload = { headerElements: ColumnDetectionUtils.getHeaderColumns(),