From 0c1864f792c76e613bb4c032144552c5ec4053a5 Mon Sep 17 00:00:00 2001 From: anyulled <100741+anyulled@users.noreply.github.com> Date: Thu, 21 May 2026 08:23:37 +0000 Subject: [PATCH] perf: optimize schedule filtering with Set lookup Replaced `Array.prototype.includes` with `Set.prototype.has` inside the `filterSessions` loop to improve time complexity from O(N*M) to O(N+M). Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- components/schedule/ScheduleContainer.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/schedule/ScheduleContainer.tsx b/components/schedule/ScheduleContainer.tsx index 33d877a4..b671ae34 100644 --- a/components/schedule/ScheduleContainer.tsx +++ b/components/schedule/ScheduleContainer.tsx @@ -20,7 +20,8 @@ export default function ScheduleContainer({ initialSchedule, year }: Readonly sessions.filter((s) => savedSessionIds.includes(s.id) || s.isServiceSession); + const savedSessionSet = new Set(savedSessionIds); + const filterSessions = (sessions: GridSession[]) => sessions.filter((s) => savedSessionSet.has(s.id) || s.isServiceSession); return initialSchedule.map((day) => ({ ...day,