From 7cda973f598873b33cda593539fe39a4fc517782 Mon Sep 17 00:00:00 2001 From: "Janus C. H. Knudsen" Date: Tue, 11 Nov 2025 20:23:51 +0100 Subject: [PATCH] Optimize all-day event layout rendering Improves event removal and layout recalculation process Enhances event removal by: - Filtering out removed event - Recalculating event layouts dynamically - Re-rendering events with compressed layout - Animating container height accordingly Reduces visual gaps and improves layout responsiveness --- src/managers/AllDayManager.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/managers/AllDayManager.ts b/src/managers/AllDayManager.ts index 348ead1..24047c1 100644 --- a/src/managers/AllDayManager.ts +++ b/src/managers/AllDayManager.ts @@ -128,7 +128,17 @@ export class AllDayManager { console.log('🔄 AllDayManager: All-day → timed conversion', { eventId }); + // Mark for removal (sets data-removing attribute) this.fadeOutAndRemove(dragEndPayload.originalElement); + + // Recalculate layout WITHOUT the removed event to compress gaps + const remainingEvents = this.currentAllDayEvents.filter(e => e.id !== eventId); + const newLayouts = this.calculateAllDayEventsLayout(remainingEvents, this.currentWeekDates); + + // Re-render all-day events with compressed layout + this.allDayEventRenderer.renderAllDayEventsForPeriod(newLayouts); + + // NOW animate height with compressed layout this.checkAndAnimateAllDayHeight(); } });