Adds header drawer event rendering support

Extends calendar rendering to support all-day events in header drawer

Implements rendering logic for all-day events in header drawer:
- Fetches events for visible date range
- Filters and creates header items for all-day events
- Dynamically positions events with color classes
- Expands header drawer when events are present

Enhances event persistence with header drop detection
This commit is contained in:
Janus C. H. Knudsen 2025-12-11 23:04:48 +01:00
parent f670598e7a
commit d88956f47b
3 changed files with 92 additions and 4 deletions

View file

@ -2,13 +2,15 @@ import { IRenderer, IRenderContext } from './IGroupingRenderer';
import { buildPipeline } from './RenderBuilder';
import { EventRenderer } from '../features/event/EventRenderer';
import { ScheduleRenderer } from '../features/schedule/ScheduleRenderer';
import { HeaderDrawerRenderer } from '../features/headerdrawer/HeaderDrawerRenderer';
import { ViewConfig } from './ViewConfig';
export class CalendarOrchestrator {
constructor(
private allRenderers: IRenderer[],
private eventRenderer: EventRenderer,
private scheduleRenderer: ScheduleRenderer
private scheduleRenderer: ScheduleRenderer,
private headerDrawerRenderer: HeaderDrawerRenderer
) {}
async render(viewConfig: ViewConfig, container: HTMLElement): Promise<void> {
@ -48,8 +50,11 @@ export class CalendarOrchestrator {
// Render schedule unavailable zones (før events)
await this.scheduleRenderer.render(container, filter);
// Render events med hele filter (date + resource)
// Render timed events in grid
await this.eventRenderer.render(container, filter);
// Render allDay events in header drawer
await this.headerDrawerRenderer.render(container, filter);
}
private selectRenderers(viewConfig: ViewConfig): IRenderer[] {