Refactors calendar configuration and event handling

Streamlines calendar configuration by adopting a singleton pattern for consistent access and simplifies event handling.

- Removes direct `CalendarConfig` dependency injection in favor of the `calendarConfig` singleton, reducing code complexity.
- Replaces specific event emissions for grid, date, and resource settings updates with a general `REFRESH_REQUESTED` event.
- Updates event names to be more descriptive and consistent ("NAVIGATION_COMPLETED", "PERIOD_INFO_UPDATE").
- Removes the need to pass the calendar config to renderers since it is now a singleton.

This improves code maintainability and simplifies the event emission process.
This commit is contained in:
Janus Knudsen 2025-09-03 20:04:47 +02:00
parent d0936d1838
commit 2083c6921e
19 changed files with 139 additions and 173 deletions

View file

@ -23,7 +23,7 @@ export class GridManager {
constructor() {
// Initialize GridRenderer with config
this.gridRenderer = new GridRenderer(calendarConfig);
this.gridRenderer = new GridRenderer();
this.init();
}
@ -151,7 +151,7 @@ export class GridManager {
this.currentDate = nextDate;
eventBus.emit(CoreEvents.PERIOD_CHANGED, {
eventBus.emit(CoreEvents.NAVIGATION_COMPLETED, {
direction: 'next',
newDate: nextDate,
periodLabel: this.getCurrentPeriodLabel()
@ -182,7 +182,7 @@ export class GridManager {
this.currentDate = prevDate;
eventBus.emit(CoreEvents.PERIOD_CHANGED, {
eventBus.emit(CoreEvents.NAVIGATION_COMPLETED, {
direction: 'previous',
newDate: prevDate,
periodLabel: this.getCurrentPeriodLabel()