diff --git a/src/managers/AllDayManager.ts b/src/managers/AllDayManager.ts index 1083ad4..474437a 100644 --- a/src/managers/AllDayManager.ts +++ b/src/managers/AllDayManager.ts @@ -242,7 +242,7 @@ export class AllDayManager { { height: `${currentSpacerHeight}px` }, { height: `${targetSpacerHeight}px` } ], { - duration: 300, + duration: 150, easing: 'ease-out', fill: 'forwards' }) diff --git a/src/managers/NavigationManager.ts b/src/managers/NavigationManager.ts index 180d1d0..f03c9b4 100644 --- a/src/managers/NavigationManager.ts +++ b/src/managers/NavigationManager.ts @@ -270,6 +270,29 @@ export class NavigationManager { newGrid.style.position = 'relative'; newGrid.removeAttribute('data-prerendered'); + // Reset all-day height and remove hardcoded header height after slide animation + const root = document.documentElement; + root.style.setProperty('--all-day-row-height', '0px'); + + const header = newGrid.querySelector('swp-calendar-header') as HTMLElement; + if (header) { + // Remove the hardcoded 0px height + header.style.height = ''; + header.style.height + // NOW emit header:ready for this specific container + const weekEnd = DateCalculator.addDays(targetWeek, 6); + this.eventBus.emit('header:ready', { + headerElement: header, + startDate: targetWeek, + endDate: weekEnd, + isNavigation: true + }); + + console.log('🎯 NavigationManager: Animation complete, emitted header:ready', { + weekStart: targetWeek.toISOString() + }); + } + // Clear cache since DOM structure changed this.clearCache(); diff --git a/src/renderers/NavigationRenderer.ts b/src/renderers/NavigationRenderer.ts index 396a011..572afc0 100644 --- a/src/renderers/NavigationRenderer.ts +++ b/src/renderers/NavigationRenderer.ts @@ -137,6 +137,19 @@ export class NavigationRenderer { `; + // Set header to base height for slide-in animation - will be reset after animation completes + const header = newGrid.querySelector('swp-calendar-header') as HTMLElement; + if (header) { + // Get base header height (without all-day rows) + const root = document.documentElement; + const baseHeaderHeight = getComputedStyle(root).getPropertyValue('--header-height'); + header.style.height = baseHeaderHeight; + console.log('🔄 NavigationRenderer: Set header height to base height for slide-in', { + baseHeaderHeight, + weekStart: weekStart.toISOString() + }); + } + // Position new grid - NO transform here, let Animation API handle it newGrid.style.position = 'absolute'; newGrid.style.top = '0'; @@ -214,7 +227,7 @@ export class NavigationRenderer { endDate: weekEnd, isNavigation: true }; - this.eventBus.emit('header:ready', payload); + //this.eventBus.emit('header:ready', payload); } /**