fix: correct offset direction in expected time calculations

This commit is contained in:
Carlos Valente
2025-09-18 09:59:20 +02:00
committed by Carlos Valente
parent 4bf74d86b3
commit 111a1f95ba
2 changed files with 6 additions and 12 deletions
@@ -22,8 +22,7 @@ interface ScheduleItemProps {
delay: number; delay: number;
} }
export default function ScheduleItem(props: ScheduleItemProps) { export default function ScheduleItem({ timeStart, timeEnd, title, colour, skip, delay }: ScheduleItemProps) {
const { timeStart, timeEnd, title, colour, skip, delay } = props;
const { showExpected } = useScheduleOptions(); const { showExpected } = useScheduleOptions();
if (showExpected) { if (showExpected) {
@@ -67,9 +66,7 @@ export default function ScheduleItem(props: ScheduleItemProps) {
); );
} }
function DelayedScheduleItem(props: ScheduleItemProps) { function DelayedScheduleItem({ timeStart, timeEnd, title, colour, skip, delay }: ScheduleItemProps) {
const { timeStart, timeEnd, title, colour, skip, delay } = props;
const start = formatTime(timeStart, formatOptions); const start = formatTime(timeStart, formatOptions);
const end = formatTime(timeEnd, formatOptions); const end = formatTime(timeEnd, formatOptions);
const delayedStart = formatTime(timeStart + delay, formatOptions); const delayedStart = formatTime(timeStart + delay, formatOptions);
@@ -95,9 +92,7 @@ function DelayedScheduleItem(props: ScheduleItemProps) {
); );
} }
function ExpectedScheduleItem(props: ScheduleItemProps) { function ExpectedScheduleItem({ timeStart, timeEnd, title, colour, skip, delay }: ScheduleItemProps) {
const { timeStart, timeEnd, title, colour, skip, delay } = props;
return ( return (
<li className={cx(['entry', skip && 'entry--skip'])}> <li className={cx(['entry', skip && 'entry--skip'])}>
<div className='entry-times'> <div className='entry-times'>
@@ -116,12 +111,11 @@ interface ExpectedTimeProps {
delay: number; delay: number;
} }
function ExpectedTime(props: ExpectedTimeProps) { function ExpectedTime({ time, delay }: ExpectedTimeProps) {
const { time, delay } = props;
const { offset } = useRuntimeOffset(); const { offset } = useRuntimeOffset();
const expectedOffset = offset - delay; const expectedOffset = offset - delay;
const expectedTime = formatTime(time - offset, formatOptions); const expectedTime = formatTime(time + offset, formatOptions);
const expectedState = getOffsetState(expectedOffset); const expectedState = getOffsetState(expectedOffset);
return <SuperscriptTime className={`entry-times--${expectedState}`} time={expectedTime} />; return <SuperscriptTime className={`entry-times--${expectedState}`} time={expectedTime} />;
@@ -183,7 +183,7 @@ export function getUpcomingEvents(events: PlayableEvent[], selectedId: MaybeStri
* Utility function calculates time to start * Utility function calculates time to start
*/ */
export function getTimeToStart(now: number, start: number, delay: number, offset: number): number { export function getTimeToStart(now: number, start: number, delay: number, offset: number): number {
return start + delay - now - offset; return start + delay - now + offset;
} }
interface TimelineLayout { interface TimelineLayout {