Refactors calendar type to calendar mode
Updates the codebase to utilize `CalendarMode` instead of the deprecated `CalendarType`. Simplifies `CalendarConfig` by removing legacy methods and related type aliases, enhancing code maintainability and clarity. Improves event rendering by ensuring `GRID_RENDERED` events include explicit start and end dates, preventing errors and ensuring correct data filtering.
This commit is contained in:
parent
83c0ce801c
commit
0ea4e47324
10 changed files with 61 additions and 91 deletions
|
|
@ -144,7 +144,6 @@ export class CalendarManager {
|
|||
this.eventBus.emit(CoreEvents.DATE_CHANGED, {
|
||||
previousDate,
|
||||
currentDate: this.currentDate,
|
||||
date: this.currentDate, // Add for backward compatibility
|
||||
view: this.currentView
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -54,25 +54,6 @@ export class GridManager {
|
|||
);
|
||||
|
||||
// Listen for data changes
|
||||
// REMOVED: GridManager should not re-render on DATE_CHANGED
|
||||
// Date navigation is handled by NavigationManager
|
||||
// this.eventCleanup.push(
|
||||
// eventBus.on(CoreEvents.DATE_CHANGED, (e: Event) => {
|
||||
// const detail = (e as CustomEvent).detail;
|
||||
// this.currentDate = detail.currentDate;
|
||||
// this.render();
|
||||
// })
|
||||
// );
|
||||
|
||||
// REMOVED: GridManager should not re-render on WEEK_CHANGED
|
||||
// Navigation is handled by NavigationManager + NavigationRenderer
|
||||
// this.eventCleanup.push(
|
||||
// eventBus.on(CoreEvents.WEEK_CHANGED, (e: Event) => {
|
||||
// const detail = (e as CustomEvent).detail;
|
||||
// this.currentDate = detail.weekStart;
|
||||
// this.render();
|
||||
// })
|
||||
// );
|
||||
|
||||
this.eventCleanup.push(
|
||||
eventBus.on(CoreEvents.DATA_LOADED, (e: Event) => {
|
||||
|
|
@ -156,12 +137,17 @@ export class GridManager {
|
|||
// Get layout info from strategy
|
||||
const layoutConfig = this.currentStrategy.getLayoutConfig();
|
||||
|
||||
console.log(`GridManager: Emitting GRID_RENDERED for main container`);
|
||||
// Get period range from current strategy
|
||||
const periodRange = this.currentStrategy.getPeriodRange(this.currentDate);
|
||||
|
||||
// Emit grid rendered event
|
||||
console.log(`GridManager: Emitting GRID_RENDERED for main container with period ${periodRange.startDate.toDateString()} - ${periodRange.endDate.toDateString()}`);
|
||||
|
||||
// Emit grid rendered event with explicit date range
|
||||
eventBus.emit(CoreEvents.GRID_RENDERED, {
|
||||
container: this.container,
|
||||
currentDate: this.currentDate,
|
||||
startDate: periodRange.startDate,
|
||||
endDate: periodRange.endDate,
|
||||
layoutConfig: layoutConfig,
|
||||
columnCount: layoutConfig.columnCount
|
||||
});
|
||||
|
|
|
|||
|
|
@ -65,17 +65,17 @@ export class NavigationManager {
|
|||
// Listen for external navigation requests
|
||||
this.eventBus.on(CoreEvents.DATE_CHANGED, (event: Event) => {
|
||||
const customEvent = event as CustomEvent;
|
||||
const dateFromEvent = customEvent.detail.date || customEvent.detail.currentDate;
|
||||
const dateFromEvent = customEvent.detail.currentDate;
|
||||
|
||||
// Validate date before processing
|
||||
if (!dateFromEvent) {
|
||||
console.warn('NavigationManager: No date provided in DATE_CHANGED event', customEvent.detail);
|
||||
console.warn('NavigationManager: No currentDate provided in DATE_CHANGED event', customEvent.detail);
|
||||
return;
|
||||
}
|
||||
|
||||
const targetDate = new Date(dateFromEvent);
|
||||
if (isNaN(targetDate.getTime())) {
|
||||
console.warn('NavigationManager: Invalid date in DATE_CHANGED event', dateFromEvent);
|
||||
console.warn('NavigationManager: Invalid currentDate in DATE_CHANGED event', dateFromEvent);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue