This commit is contained in:
Janus Knudsen 2025-08-09 01:16:04 +02:00
parent 59b3c64c55
commit b111f121ba
9 changed files with 200 additions and 694 deletions

View file

@ -20,45 +20,26 @@ export class EventManager {
}
private setupEventListeners(): void {
// Listen for state-driven data loading request
this.eventBus.on(StateEvents.DATA_LOADING_STARTED, (e: Event) => {
const detail = (e as CustomEvent).detail;
console.log('EventManager: Received DATA_LOADING_STARTED, starting data load');
this.loadMockData().then(() => {
console.log('EventManager: loadMockData() completed, emitting DATA_LOADED');
// Emit state-driven data loaded event
this.eventBus.emit(StateEvents.DATA_LOADED, {
type: StateEvents.DATA_LOADED,
component: 'EventManager',
timestamp: Date.now(),
data: {
eventCount: this.events.length,
calendarMode: calendarConfig.getCalendarMode(),
period: detail.data?.period || { start: '', end: '' },
events: this.events // Include actual events for EventRenderer
},
metadata: {
phase: 'data-loading'
}
});
}).catch(error => {
console.error('EventManager: loadMockData() failed:', error);
this.eventBus.emit(StateEvents.DATA_FAILED, {
type: StateEvents.DATA_FAILED,
component: 'EventManager',
timestamp: Date.now(),
error,
metadata: {
phase: 'data-loading'
}
});
// Keep only UI-related event listeners here if needed
// Data loading is now handled via direct method calls
}
/**
* Public method to load data - called directly by CalendarManager
*/
public async loadData(): Promise<void> {
console.log('EventManager: Loading data via direct call');
await this.loadMockData();
console.log(`EventManager: Data loaded successfully - ${this.events.length} events`);
// Debug: Log first few events
if (this.events.length > 0) {
console.log('EventManager: First event:', {
title: this.events[0].title,
start: this.events[0].start,
end: this.events[0].end
});
});
// Legacy event listeners removed - data is now managed via state-driven events only
}
}
private async loadMockData(): Promise<void> {