diff --git a/components/schedule/ScheduleContainer.tsx b/components/schedule/ScheduleContainer.tsx index 33d877a4..268253bf 100644 --- a/components/schedule/ScheduleContainer.tsx +++ b/components/schedule/ScheduleContainer.tsx @@ -20,7 +20,13 @@ export default function ScheduleContainer({ initialSchedule, year }: Readonly sessions.filter((s) => savedSessionIds.includes(s.id) || s.isServiceSession); + /* + * ⚡ Bolt: Convert array to Set for O(1) lookups instead of O(N) array includes + * Expected impact: Time complexity improves from O(N*M) to O(N+M) + * Measurement: Schedule renders faster when large numbers of sessions are saved + */ + const savedIdsSet = new Set(savedSessionIds); + const filterSessions = (sessions: GridSession[]) => sessions.filter((s) => savedIdsSet.has(s.id) || s.isServiceSession); return initialSchedule.map((day) => ({ ...day,