From 7c642f3832adf4f6f269abe0a26fd3969efcfd82 Mon Sep 17 00:00:00 2001 From: arc-alex Date: Thu, 20 Mar 2025 16:04:44 +0100 Subject: [PATCH] pass data from ssocket --- apps/client/src/common/hooks/useSocket.ts | 5 ++++- apps/client/src/common/utils/__tests__/time.test.ts | 10 ++++++++++ apps/client/src/common/utils/time.ts | 13 +++++-------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/apps/client/src/common/hooks/useSocket.ts b/apps/client/src/common/hooks/useSocket.ts index 7c97c4337..e44c83775 100644 --- a/apps/client/src/common/hooks/useSocket.ts +++ b/apps/client/src/common/hooks/useSocket.ts @@ -172,8 +172,11 @@ export const useTimelineStatus = createSelector((state: RuntimeStore) => ({ export const useTimeUntilData = createSelector((state: RuntimeStore) => ({ clock: state.clock, - offset: state.runtime.offset, + offset: state.runtime.offsetMode === OffsetMode.Absolute ? state.runtime.offset : state.runtime.relativeOffset, + offsetMode: state.runtime.offsetMode, currentDay: state.eventNow?.dayOffset ?? 0, //The day of the currently running event + actualStart: state.runtime.actualStart, + plannedStart: state.runtime.plannedStart, })); export const useRuntimeOffset = createSelector((state: RuntimeStore) => ({ diff --git a/apps/client/src/common/utils/__tests__/time.test.ts b/apps/client/src/common/utils/__tests__/time.test.ts index 33edde1a6..12a0bb8bc 100644 --- a/apps/client/src/common/utils/__tests__/time.test.ts +++ b/apps/client/src/common/utils/__tests__/time.test.ts @@ -54,6 +54,8 @@ describe('calculateTimeUntilStart()', () => { clock: 90, offset: 0, offsetMode: OffsetMode.Absolute, + actualStart: null, + plannedStart: null, }; expect(calculateTimeUntilStart({ ...test, isLinkedToLoaded: false })).toBe(10); @@ -70,6 +72,8 @@ describe('calculateTimeUntilStart()', () => { clock: 90, offset: -20, offsetMode: OffsetMode.Absolute, + actualStart: null, + plannedStart: null, }; expect(calculateTimeUntilStart({ ...test, isLinkedToLoaded: false })).toBe(30); @@ -86,6 +90,8 @@ describe('calculateTimeUntilStart()', () => { clock: 80, offset: 10, offsetMode: OffsetMode.Absolute, + actualStart: null, + plannedStart: null, }; expect(calculateTimeUntilStart({ ...test, isLinkedToLoaded: false })).toBe(20); // <-- when running ahead the unlinked timer stays put @@ -102,6 +108,8 @@ describe('calculateTimeUntilStart()', () => { clock: 50, offset: -20, offsetMode: OffsetMode.Absolute, + actualStart: null, + plannedStart: null, }; expect(calculateTimeUntilStart({ ...test, isLinkedToLoaded: false })).toBe(50); @@ -118,6 +126,8 @@ describe('calculateTimeUntilStart()', () => { clock: 50, offset: -20, offsetMode: OffsetMode.Absolute, + actualStart: 0, + plannedStart: 0, }; expect(calculateTimeUntilStart({ ...test, isLinkedToLoaded: false })).toBe(60); diff --git a/apps/client/src/common/utils/time.ts b/apps/client/src/common/utils/time.ts index a5f5f99e5..390206ab8 100644 --- a/apps/client/src/common/utils/time.ts +++ b/apps/client/src/common/utils/time.ts @@ -138,11 +138,10 @@ export function useTimeUntilStart( data: Pick & { totalGap: number; isLinkedToLoaded: boolean; - offsetMode: OffsetMode; }, ): number { - const { offset, clock, currentDay } = useTimeUntilData(); - return calculateTimeUntilStart({ ...data, currentDay, clock, offset }); + const { offset, clock, currentDay, offsetMode, actualStart, plannedStart } = useTimeUntilData(); + return calculateTimeUntilStart({ ...data, currentDay, clock, offset, offsetMode, actualStart, plannedStart }); } /** @@ -162,8 +161,8 @@ export function calculateTimeUntilStart( clock: number; offset: number; offsetMode: OffsetMode; - actualStart?: number; - plannedStart?: number; + actualStart: MaybeNumber; + plannedStart: MaybeNumber; }, ): number { const { @@ -191,9 +190,7 @@ export function calculateTimeUntilStart( let relativeStartOffset = 0; if (offsetMode === OffsetMode.Relative) { - assert(actualStart !== undefined); - assert(plannedStart !== undefined); - relativeStartOffset = actualStart - plannedStart; + relativeStartOffset = (actualStart ?? 0) - (plannedStart ?? 0); } const scheduledTimeUntil = normalisedTimeStart - clock + relativeStartOffset;