From 3b75e1cafc411f4e130ac55b2fe0b2ca1d5d30a5 Mon Sep 17 00:00:00 2001 From: Janus Knudsen Date: Thu, 18 Sep 2025 18:00:28 +0200 Subject: [PATCH] WIP --- src/elements/SwpEventElement.ts | 40 ++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/src/elements/SwpEventElement.ts b/src/elements/SwpEventElement.ts index 80dcd9a..e34a92e 100644 --- a/src/elements/SwpEventElement.ts +++ b/src/elements/SwpEventElement.ts @@ -221,15 +221,34 @@ export class SwpAllDayEventElement extends BaseEventElement { const existingEvents = document.querySelectorAll('swp-allday-event'); const occupiedRows = new Set(); + console.log('🔍 SwpAllDayEventElement: Checking grid row for new event', { + targetDate, + finalStartColumn, + finalEndColumn, + existingEventsCount: existingEvents.length + }); + existingEvents.forEach(existingEvent => { const style = getComputedStyle(existingEvent); const eventStartCol = parseInt(style.gridColumnStart); const eventEndCol = parseInt(style.gridColumnEnd); + const eventRow = parseInt(style.gridRowStart) || 1; + const eventId = (existingEvent as HTMLElement).dataset.eventId; - // Check if this existing event overlaps with our column span - if (this.columnsOverlap(eventStartCol, eventEndCol, finalStartColumn, finalEndColumn)) { - const eventRow = parseInt(style.gridRowStart) || 1; + console.log('📊 SwpAllDayEventElement: Checking existing event', { + eventId, + eventStartCol, + eventEndCol, + eventRow, + newEventColumn: finalStartColumn + }); + + // FIXED: Only check events in the same column (not overlap detection) + if (eventStartCol === finalStartColumn) { + console.log('✅ SwpAllDayEventElement: Same column - adding occupied row', eventRow); occupiedRows.add(eventRow); + } else { + console.log('⏭️ SwpAllDayEventElement: Different column - skipping'); } }); @@ -239,10 +258,25 @@ export class SwpAllDayEventElement extends BaseEventElement { targetRow++; } + console.log('🎯 SwpAllDayEventElement: Final row assignment', { + targetDate, + finalStartColumn, + occupiedRows: Array.from(occupiedRows).sort(), + assignedRow: targetRow + }); + // Create element with calculated column span const element = new SwpAllDayEventElement(event, finalStartColumn); element.setGridRow(targetRow); element.setColumnSpan(finalStartColumn, finalEndColumn); + + console.log('✅ SwpAllDayEventElement: Created all-day event', { + eventId: event.id, + title: event.title, + column: finalStartColumn, + row: targetRow + }); + return element; }