Improves all-day drag-and-drop conversion
Refactors drag-to-all-day functionality to apply CSS styling and reposition the existing drag clone within the all-day container, rather than creating a new event element. Centralizes all-day container creation in HeaderManager. Introduces `drag:mouseleave-header` to handle transitions from all-day back to timed events. Ensures consistent styling and robust cleanup of drag clones for a smoother user experience.
This commit is contained in:
parent
2cdbc8f1a3
commit
c682c30e23
6 changed files with 181 additions and 121 deletions
|
|
@ -24,6 +24,9 @@ export class HeaderManager {
|
|||
|
||||
// Listen for navigation events to update header
|
||||
this.setupNavigationListener();
|
||||
|
||||
// Listen for requests to ensure all-day container
|
||||
this.setupContainerRequestListener();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -95,18 +98,23 @@ export class HeaderManager {
|
|||
}
|
||||
|
||||
/**
|
||||
* Ensure all-day container exists in header
|
||||
* Ensure all-day container exists in header - creates directly
|
||||
*/
|
||||
private ensureAllDayContainer(): void {
|
||||
private ensureAllDayContainer(): HTMLElement | null {
|
||||
const calendarHeader = this.getCalendarHeader();
|
||||
if (!calendarHeader) return;
|
||||
if (!calendarHeader) return null;
|
||||
|
||||
let allDayContainer = calendarHeader.querySelector('swp-allday-container');
|
||||
let allDayContainer = calendarHeader.querySelector('swp-allday-container') as HTMLElement;
|
||||
|
||||
if (!allDayContainer) {
|
||||
console.log('📍 HeaderManager: All-day container missing, requesting creation...');
|
||||
eventBus.emit('allday:ensure-container');
|
||||
console.log('📍 HeaderManager: Creating all-day container directly...');
|
||||
allDayContainer = document.createElement('swp-allday-container');
|
||||
calendarHeader.appendChild(allDayContainer);
|
||||
|
||||
console.log('✅ HeaderManager: All-day container created');
|
||||
}
|
||||
|
||||
return allDayContainer;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -134,6 +142,16 @@ export class HeaderManager {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup listener for all-day container creation requests
|
||||
*/
|
||||
private setupContainerRequestListener(): void {
|
||||
eventBus.on('header:ensure-allday-container', () => {
|
||||
console.log('📍 HeaderManager: Received request to ensure all-day container');
|
||||
this.ensureAllDayContainer();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Update header content for navigation
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue