Small cleanup (#2114)

* refactor: propper memo for `ScheduleContext` value

* chore: removed unused file `cuesheet.utils.ts`

* fix: memoize event in ScheduleProvider
This commit is contained in:
Alex Christoffer Rasmussen
2026-07-11 22:20:32 +02:00
committed by GitHub
parent 42147d4d5b
commit f12d3ca59c
3 changed files with 16 additions and 72 deletions
@@ -7,6 +7,7 @@ import {
useCallback,
useEffect,
useLayoutEffect,
useMemo,
useRef,
useState,
} from 'react';
@@ -140,25 +141,23 @@ export const ScheduleProvider = ({ children, selectedEventId }: PropsWithChildre
return () => clearInterval(paginator.current);
}, [cycleInterval, numPages, stopCycle, visiblePage]);
let selectedEventIndex = events.findIndex((event) => event.id === selectedEventId);
// we want to show the event after the current
const viewEvents = events.slice(selectedEventIndex + 1);
selectedEventIndex = 0;
const viewEvents = useMemo(() => {
const selectedEventIndex = events.findIndex((event) => event.id === selectedEventId);
return (events as ExtendedEntry<OntimeEvent>[]).slice(selectedEventIndex + 1);
}, [events, selectedEventId]);
return (
<ScheduleContext
value={{
events: viewEvents as ExtendedEntry<OntimeEvent>[],
selectedEventId,
numPages,
visiblePage,
containerRef,
}}
>
{children}
</ScheduleContext>
);
const value = useMemo(() => {
return {
events: viewEvents,
selectedEventId,
numPages,
visiblePage,
containerRef,
};
}, [viewEvents, selectedEventId, numPages, visiblePage, containerRef]);
return <ScheduleContext value={value}>{children}</ScheduleContext>;
};
export const useSchedule = () => {