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

View file

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