diff --git a/apps/server/src/services/runtime-service/RuntimeService.ts b/apps/server/src/services/runtime-service/RuntimeService.ts index bfff3f4a4..643ed3eb1 100644 --- a/apps/server/src/services/runtime-service/RuntimeService.ts +++ b/apps/server/src/services/runtime-service/RuntimeService.ts @@ -476,7 +476,13 @@ class RuntimeService { reload() { const state = runtimeState.getState(); if (state.eventNow) { - runtimeState.reload(); + const eventId = runtimeState.reload(); + if (eventId) { + logger.info(LogOrigin.Playback, `Loaded event with ID ${eventId}`); + process.nextTick(() => { + integrationService.dispatch(TimerLifeCycle.onLoad); + }); + } } } diff --git a/apps/server/src/stores/runtimeState.ts b/apps/server/src/stores/runtimeState.ts index 70516dcef..945b7e4c5 100644 --- a/apps/server/src/stores/runtimeState.ts +++ b/apps/server/src/stores/runtimeState.ts @@ -236,6 +236,7 @@ export function resume(restorePoint: RestorePoint, event: OntimeEvent, rundown: * @param {OntimeEvent} event only passed if we are changing the data if a playing timer */ export function reload(event?: OntimeEvent) { + // we only pass an event for hot reloading, ie: the event has changed if (event) { runtimeState.eventNow = event; @@ -243,7 +244,7 @@ export function reload(event?: OntimeEvent) { runtimeState.timer.duration = calculateDuration(runtimeState.eventNow.timeStart, runtimeState.eventNow.timeEnd); runtimeState.timer.current = getCurrent(runtimeState); runtimeState.timer.expectedFinish = getExpectedFinish(runtimeState); - return; + return runtimeState.eventNow.id; } runtimeState.timer.playback = Playback.Armed; @@ -257,6 +258,7 @@ export function reload(event?: OntimeEvent) { runtimeState.timer.addedTime = 0; runtimeState.timer.expectedFinish = getExpectedFinish(runtimeState); + return runtimeState.eventNow.id; } /**