From 84fac739f061a4249244b53dfb06d0ded7dcd1f7 Mon Sep 17 00:00:00 2001 From: Carlos Valente Date: Fri, 28 Mar 2025 21:35:23 +0100 Subject: [PATCH] refactor: swap maintains schedule --- apps/server/src/services/rundown-service/rundownCache.ts | 2 ++ packages/utils/src/rundown-utils/rundownUtils.test.ts | 8 ++++++-- packages/utils/src/rundown-utils/rundownUtils.ts | 6 ++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/server/src/services/rundown-service/rundownCache.ts b/apps/server/src/services/rundown-service/rundownCache.ts index 5a2ce87c6..99257e3fa 100644 --- a/apps/server/src/services/rundown-service/rundownCache.ts +++ b/apps/server/src/services/rundown-service/rundownCache.ts @@ -525,6 +525,8 @@ export function swap({ rundown, fromId, toId }: SwapArgs): MutatingReturn { rundown.entries[fromId] = newFrom; rundown.entries[toId] = newTo; + newFrom.revision++; + newTo.revision++; setIsStale(); return { newRundown: rundown, didMutate: true }; diff --git a/packages/utils/src/rundown-utils/rundownUtils.test.ts b/packages/utils/src/rundown-utils/rundownUtils.test.ts index b25522130..efdc80e0d 100644 --- a/packages/utils/src/rundown-utils/rundownUtils.test.ts +++ b/packages/utils/src/rundown-utils/rundownUtils.test.ts @@ -203,6 +203,7 @@ describe('swapEventData', () => { duration: 1, delay: 1, revision: 3, + currentBlock: null, } as OntimeEvent; const eventB = { id: '2', @@ -212,6 +213,7 @@ describe('swapEventData', () => { duration: 2, delay: 2, revision: 7, + currentBlock: 'testing', } as OntimeEvent; const [newA, newB] = swapEventData(eventA, eventB); @@ -223,7 +225,8 @@ describe('swapEventData', () => { timeEnd: 1, duration: 1, delay: 1, - revision: 4, + revision: 3, + currentBlock: null, }); expect(newB).toMatchObject({ id: '2', @@ -232,7 +235,8 @@ describe('swapEventData', () => { timeEnd: 2, duration: 2, delay: 2, - revision: 8, + revision: 7, + currentBlock: 'testing', }); }); }); diff --git a/packages/utils/src/rundown-utils/rundownUtils.ts b/packages/utils/src/rundown-utils/rundownUtils.ts index df7f77f97..a3937cb52 100644 --- a/packages/utils/src/rundown-utils/rundownUtils.ts +++ b/packages/utils/src/rundown-utils/rundownUtils.ts @@ -278,10 +278,13 @@ export const swapEventData = (eventA: OntimeEvent, eventB: OntimeEvent): [newA: timeEnd: eventA.timeEnd, duration: eventA.duration, linkStart: eventA.linkStart, + currentBlock: eventA.currentBlock, // keep schedule metadata delay: eventA.delay, gap: eventA.gap, dayOffset: eventA.dayOffset, + // keep revision number + revision: eventA.revision, }; const newB = { @@ -293,10 +296,13 @@ export const swapEventData = (eventA: OntimeEvent, eventB: OntimeEvent): [newA: timeEnd: eventB.timeEnd, duration: eventB.duration, linkStart: eventB.linkStart, + currentBlock: eventB.currentBlock, // keep schedule metadata delay: eventB.delay, gap: eventB.gap, dayOffset: eventB.dayOffset, + // keep revision number + revision: eventB.revision, }; return [newA, newB];