From 679580702bce9c5fc28c732392bbe29a41ff3027 Mon Sep 17 00:00:00 2001 From: "Janus C. H. Knudsen" Date: Wed, 10 Dec 2025 23:31:07 +0100 Subject: [PATCH] Enhances header drawer behavior during drag operations Adds expanded state tracking for header drawer during drag Ensures drawer remains in the correct expanded/collapsed state based on initial condition Improves user experience by maintaining consistent drawer state --- .../headerdrawer/HeaderDrawerRenderer.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/v2/features/headerdrawer/HeaderDrawerRenderer.ts b/src/v2/features/headerdrawer/HeaderDrawerRenderer.ts index 0a0e680..e1ef734 100644 --- a/src/v2/features/headerdrawer/HeaderDrawerRenderer.ts +++ b/src/v2/features/headerdrawer/HeaderDrawerRenderer.ts @@ -1,6 +1,7 @@ import { IEventBus } from '../../types/CalendarTypes'; import { IGridConfig } from '../../core/IGridConfig'; import { CoreEvents } from '../../constants/CoreEvents'; +import { HeaderDrawerManager } from '../../core/HeaderDrawerManager'; import { IDragEnterHeaderPayload, IDragMoveHeaderPayload, @@ -20,10 +21,12 @@ export class HeaderDrawerRenderer { private currentItem: HTMLElement | null = null; private container: HTMLElement | null = null; private sourceElement: HTMLElement | null = null; + private wasExpandedBeforeDrag = false; constructor( private eventBus: IEventBus, - private gridConfig: IGridConfig + private gridConfig: IGridConfig, + private headerDrawerManager: HeaderDrawerManager ) { this.setupListeners(); } @@ -63,6 +66,12 @@ export class HeaderDrawerRenderer { this.container = document.querySelector('swp-header-drawer'); if (!this.container) return; + // Remember if drawer was already expanded + this.wasExpandedBeforeDrag = this.headerDrawerManager.isExpanded(); + + // Expand drawer with animation + this.headerDrawerManager.expand(); + // Store reference to source element this.sourceElement = payload.element; @@ -147,5 +156,10 @@ export class HeaderDrawerRenderer { this.sourceElement.style.visibility = ''; this.sourceElement = null; } + + // Collapse drawer if it wasn't expanded before drag + if (!this.wasExpandedBeforeDrag) { + this.headerDrawerManager.collapse(); + } } }