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:
parent
d0936d1838
commit
2083c6921e
19 changed files with 139 additions and 173 deletions
|
|
@ -34,13 +34,13 @@ export class CalendarTypeFactory {
|
|||
this.registerRenderers('date', {
|
||||
headerRenderer: new DateHeaderRenderer(),
|
||||
columnRenderer: new DateColumnRenderer(),
|
||||
eventRenderer: new DateEventRenderer(calendarConfig)
|
||||
eventRenderer: new DateEventRenderer()
|
||||
});
|
||||
|
||||
this.registerRenderers('resource', {
|
||||
headerRenderer: new ResourceHeaderRenderer(),
|
||||
columnRenderer: new ResourceColumnRenderer(),
|
||||
eventRenderer: new ResourceEventRenderer(calendarConfig)
|
||||
eventRenderer: new ResourceEventRenderer()
|
||||
});
|
||||
|
||||
this.isInitialized = true;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import { IEventBus } from '../types/CalendarTypes';
|
||||
import { CalendarConfig } from '../core/CalendarConfig';
|
||||
import { EventManager } from '../managers/EventManager';
|
||||
import { EventRenderingService } from '../renderers/EventRendererManager';
|
||||
import { GridManager } from '../managers/GridManager';
|
||||
|
|
@ -27,7 +26,7 @@ export class ManagerFactory {
|
|||
/**
|
||||
* Create all managers with proper dependency injection
|
||||
*/
|
||||
public createManagers(eventBus: IEventBus, config: CalendarConfig): {
|
||||
public createManagers(eventBus: IEventBus): {
|
||||
eventManager: EventManager;
|
||||
eventRenderer: EventRenderingService;
|
||||
gridManager: GridManager;
|
||||
|
|
@ -45,15 +44,14 @@ export class ManagerFactory {
|
|||
const scrollManager = new ScrollManager();
|
||||
const navigationManager = new NavigationManager(eventBus, eventRenderer);
|
||||
const viewManager = new ViewManager(eventBus);
|
||||
const dragDropManager = new DragDropManager(eventBus, config);
|
||||
const dragDropManager = new DragDropManager(eventBus);
|
||||
|
||||
// CalendarManager depends on all other managers
|
||||
const calendarManager = new CalendarManager(
|
||||
eventBus,
|
||||
config,
|
||||
eventManager,
|
||||
gridManager,
|
||||
eventRenderer,
|
||||
eventBus,
|
||||
eventManager,
|
||||
gridManager,
|
||||
eventRenderer,
|
||||
scrollManager
|
||||
);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue