Adds header manager to calendar

Adds a header manager to handle header related
functionality within the calendar. Removes unused
methods from CalendarManager.
This commit is contained in:
Janus C. H. Knudsen 2025-10-14 21:27:54 +02:00
parent 4bd94d3be2
commit 020d5c3efc
3 changed files with 10 additions and 73 deletions

View file

@ -12,6 +12,7 @@ import { ResizeHandleManager } from '../managers/ResizeHandleManager';
import { EdgeScrollManager } from '../managers/EdgeScrollManager'; import { EdgeScrollManager } from '../managers/EdgeScrollManager';
import { DragHoverManager } from '../managers/DragHoverManager'; import { DragHoverManager } from '../managers/DragHoverManager';
import { CalendarManagers } from '../types/ManagerTypes'; import { CalendarManagers } from '../types/ManagerTypes';
import { HeaderManager } from '../managers/HeaderManager';
/** /**
* Factory for creating and managing calendar managers with proper dependency injection * Factory for creating and managing calendar managers with proper dependency injection
@ -45,6 +46,7 @@ export class ManagerFactory {
const resizeHandleManager = new ResizeHandleManager(); const resizeHandleManager = new ResizeHandleManager();
const edgeScrollManager = new EdgeScrollManager(eventBus); const edgeScrollManager = new EdgeScrollManager(eventBus);
const dragHoverManager = new DragHoverManager(eventBus); const dragHoverManager = new DragHoverManager(eventBus);
const headerManager = new HeaderManager();
// CalendarManager depends on all other managers // CalendarManager depends on all other managers
const calendarManager = new CalendarManager( const calendarManager = new CalendarManager(
@ -68,7 +70,8 @@ export class ManagerFactory {
allDayManager, allDayManager,
resizeHandleManager, resizeHandleManager,
edgeScrollManager, edgeScrollManager,
dragHoverManager dragHoverManager,
headerManager
}; };
} }
@ -79,9 +82,8 @@ export class ManagerFactory {
try { try {
await managers.calendarManager.initialize?.(); await managers.calendarManager.initialize?.();
if (managers.resizeHandleManager && managers.resizeHandleManager.initialize) { await managers.resizeHandleManager.initialize?.();
managers.resizeHandleManager.initialize();
}
} catch (error) { } catch (error) {
throw error; throw error;
} }

View file

@ -114,30 +114,6 @@ export class CalendarManager {
}); });
} }
/**
* Genindlæs calendar data
*/
public refresh(): void {
this.eventBus.emit(CoreEvents.REFRESH_REQUESTED, {
view: this.currentView,
date: this.currentDate
});
}
/**
* Ryd calendar og nulstil til standard tilstand
*/
public reset(): void {
this.currentView = 'week';
this.currentDate = new Date();
this.eventBus.emit(CoreEvents.REFRESH_REQUESTED, {
view: this.currentView,
date: this.currentDate
});
}
/** /**
* Setup event listeners for at håndtere events fra andre managers * Setup event listeners for at håndtere events fra andre managers
@ -147,54 +123,12 @@ export class CalendarManager {
this.eventBus.on(CoreEvents.WORKWEEK_CHANGED, (event: Event) => { this.eventBus.on(CoreEvents.WORKWEEK_CHANGED, (event: Event) => {
const customEvent = event as CustomEvent; const customEvent = event as CustomEvent;
this.handleWorkweekChange(); // this.handleWorkweekChange();
}); });
} }
/**
* Beregn næste dato baseret aktuel view
*/
private calculateNextDate(): Date {
const nextDate = new Date(this.currentDate);
switch (this.currentView) {
case 'day':
nextDate.setDate(nextDate.getDate() + 1);
break;
case 'week':
const workWeekSettings = calendarConfig.getWorkWeekSettings();
nextDate.setDate(nextDate.getDate() + 7); // Move to next calendar week regardless of work days
break;
case 'month':
nextDate.setMonth(nextDate.getMonth() + 1);
break;
}
return nextDate;
}
/**
* Beregn forrige dato baseret aktuel view
*/
private calculatePreviousDate(): Date {
const previousDate = new Date(this.currentDate);
switch (this.currentView) {
case 'day':
previousDate.setDate(previousDate.getDate() - 1);
break;
case 'week':
const workWeekSettings = calendarConfig.getWorkWeekSettings();
previousDate.setDate(previousDate.getDate() - 7); // Move to previous calendar week regardless of work days
break;
case 'month':
previousDate.setMonth(previousDate.getMonth() - 1);
break;
}
return previousDate;
}
/** /**
* Calculate the current period based on view and date * Calculate the current period based on view and date

View file

@ -16,6 +16,7 @@ export interface CalendarManagers {
resizeHandleManager: ResizeHandleManager; resizeHandleManager: ResizeHandleManager;
edgeScrollManager: unknown; // Avoid interface conflicts edgeScrollManager: unknown; // Avoid interface conflicts
dragHoverManager: unknown; // Avoid interface conflicts dragHoverManager: unknown; // Avoid interface conflicts
headerManager: unknown; // Avoid interface conflicts
} }
/** /**