Refactors event emission for date and workweek changes

Moves event emission responsibilities for date and
workweek changes to the calling components. This allows
for consolidated updates and optimized event handling,
avoiding redundant emissions and ensuring that events
are triggered with the correct payload.
This commit is contained in:
Janus C. H. Knudsen 2025-10-14 18:10:51 +02:00
parent 5b0ae0ca5c
commit ee4b9b3707
3 changed files with 12 additions and 31 deletions

View file

@ -420,14 +420,10 @@ export class CalendarConfig {
/**
* Set selected date
* Note: Does not emit events - caller is responsible for event emission
*/
setSelectedDate(date: Date): void {
this.selectedDate = date;
// Emit date change event
eventBus.emit(CoreEvents.DATE_CHANGED, {
date: date
});
}
/**
@ -478,6 +474,7 @@ export class CalendarConfig {
/**
* Set work week preset
* Note: Does not emit events - caller is responsible for event emission
*/
setWorkWeek(workWeekId: string): void {
const presets = this.getWorkWeekPresets();
@ -486,12 +483,6 @@ export class CalendarConfig {
// Update dateViewSettings to match work week
this.dateViewSettings.weekDays = presets[workWeekId].totalDays;
// Emit work week change event
eventBus.emit(CoreEvents.WORKWEEK_CHANGED, {
workWeekId: workWeekId,
settings: presets[workWeekId]
});
}
}

View file

@ -207,20 +207,6 @@ export class GridManager {
this.render();
}
/**
* Navigate to today
*/
public navigateToToday(): void {
this.currentDate = new Date();
eventBus.emit(CoreEvents.DATE_CHANGED, {
newDate: this.currentDate,
periodLabel: this.getCurrentPeriodLabel()
});
this.render();
}
/**
* Get current view's display dates
*/

View file

@ -139,14 +139,18 @@ export class ViewManager {
* Optimized workweek change with consolidated updates
*/
private changeWorkweek(workweekId: string): void {
// Update the calendar config
// Update the calendar config (does not emit events)
calendarConfig.setWorkWeek(workweekId);
// Update button states using cached elements
this.updateAllButtons();
// Trigger a workweek change to apply the new workweek
this.eventBus.emit(CoreEvents.WORKWEEK_CHANGED);
// Emit workweek change event with full payload
const settings = calendarConfig.getWorkWeekSettings();
this.eventBus.emit(CoreEvents.WORKWEEK_CHANGED, {
workWeekId: workweekId,
settings: settings
});
}
/**