Refactors grid creation to GridRenderer

Centralizes grid creation logic within the GridRenderer
for better code organization and reusability. This change
moves the grid rendering functionality from
NavigationRenderer to GridRenderer and updates the
NavigationManager to use the new GridRenderer.
This commit is contained in:
Janus C. H. Knudsen 2025-09-25 17:46:49 +02:00
parent e20e23651c
commit 710dda4c24
3 changed files with 124 additions and 105 deletions

View file

@ -3,6 +3,7 @@ import { EventRenderingService } from '../renderers/EventRendererManager';
import { DateCalculator } from '../utils/DateCalculator';
import { CoreEvents } from '../constants/CoreEvents';
import { NavigationRenderer } from '../renderers/NavigationRenderer';
import { GridRenderer } from '../renderers/GridRenderer';
import { calendarConfig } from '../core/CalendarConfig';
/**
@ -12,6 +13,7 @@ import { calendarConfig } from '../core/CalendarConfig';
export class NavigationManager {
private eventBus: IEventBus;
private navigationRenderer: NavigationRenderer;
private gridRenderer: GridRenderer;
private dateCalculator: DateCalculator;
private currentWeek: Date;
private targetWeek: Date;
@ -22,6 +24,7 @@ export class NavigationManager {
DateCalculator.initialize(calendarConfig);
this.dateCalculator = new DateCalculator();
this.navigationRenderer = new NavigationRenderer(eventBus, eventRenderer);
this.gridRenderer = new GridRenderer();
this.currentWeek = DateCalculator.getISOWeekStart(new Date());
this.targetWeek = new Date(this.currentWeek);
this.init();
@ -206,8 +209,14 @@ export class NavigationManager {
let newGrid: HTMLElement;
console.group('🔧 NavigationManager.refactored');
console.log('Calling GridRenderer instead of NavigationRenderer');
console.log('Target week:', targetWeek);
// Always create a fresh container for consistent behavior
newGrid = this.navigationRenderer.renderContainer(container, targetWeek);
newGrid = this.gridRenderer.createNavigationGrid(container, targetWeek);
console.groupEnd();
// Clear any existing transforms before animation