diff --git a/src/elements/SwpEventElement.ts b/src/elements/SwpEventElement.ts index 1ea565e..003d6e5 100644 --- a/src/elements/SwpEventElement.ts +++ b/src/elements/SwpEventElement.ts @@ -250,6 +250,7 @@ export class SwpAllDayEventElement extends BaseEventElement { const endDateStr = this.event.end.toISOString().split('T')[0]; this.element.dataset.start = `${startDateStr}T00:00:00`; this.element.dataset.end = `${endDateStr}T23:59:59`; + this.element.dataset.allday = 'true'; } /** diff --git a/src/managers/AllDayManager.ts b/src/managers/AllDayManager.ts index 143b8b1..806782b 100644 --- a/src/managers/AllDayManager.ts +++ b/src/managers/AllDayManager.ts @@ -367,7 +367,7 @@ export class AllDayManager { // 2. Normalize clone ID dragEndEvent.draggedClone.dataset.eventId = dragEndEvent.draggedClone.dataset.eventId?.replace('clone-', ''); - + dragEndEvent.originalElement.dataset.eventId += '_'; // 3. Create temporary array with existing events + the dropped event let eventId = dragEndEvent.draggedClone.dataset.eventId; @@ -390,7 +390,10 @@ export class AllDayManager { }; // Use current events + dropped event for calculation - const tempEvents = [...this.currentAllDayEvents, droppedEvent].except(dragEndEvent.originalElement); + const tempEvents = [ + ...this.currentAllDayEvents.filter(event => event.id !== eventId), + droppedEvent + ]; // 4. Calculate new layouts for ALL events this.newLayouts = this.calculateAllDayEventsLayout(tempEvents, this.currentWeekDates);