From d53af317bb3354dbd00a11b09d74114e00ebdfe0 Mon Sep 17 00:00:00 2001 From: "Janus C. H. Knudsen" Date: Wed, 26 Nov 2025 14:42:42 +0100 Subject: [PATCH] Removes redundant event visibility filtering Eliminates unnecessary event visibility check in layout engine Assumes events are pre-filtered before reaching the layout calculation, simplifying the processing logic and reducing computational overhead Removes local `isEventVisible` method and directly processes all input events --- src/utils/AllDayLayoutEngine.ts | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/src/utils/AllDayLayoutEngine.ts b/src/utils/AllDayLayoutEngine.ts index 31d5018..1afe7b9 100644 --- a/src/utils/AllDayLayoutEngine.ts +++ b/src/utils/AllDayLayoutEngine.ts @@ -30,11 +30,9 @@ export class AllDayLayoutEngine { // Reset tracks for new calculation this.tracks = [new Array(this.columnIdentifiers.length).fill(false)]; - // Filter to only visible events - const visibleEvents = events.filter(event => this.isEventVisible(event)); - // Process events in input order (no sorting) - for (const event of visibleEvents) { + // Events are already filtered by DataSource before reaching this engine + for (const event of events) { const startDay = this.getEventStartDay(event); const endDay = this.getEventEndDay(event); @@ -157,22 +155,6 @@ export class AllDayLayoutEngine { return endIndex; } - /** - * Check if event is visible in the current date range - */ - private isEventVisible(event: ICalendarEvent): boolean { - if (this.columnIdentifiers.length === 0) return false; - - const eventStartDate = this.formatDate(event.start); - const eventEndDate = this.formatDate(event.end); - const firstVisibleDate = this.columnIdentifiers[0]; - const lastVisibleDate = this.columnIdentifiers[this.columnIdentifiers.length - 1]; - - // Event overlaps if it doesn't end before visible range starts - // AND doesn't start after visible range ends - return !(eventEndDate < firstVisibleDate || eventStartDate > lastVisibleDate); - } - /** * Format date to YYYY-MM-DD string using local date */