Skip to content

Commit 1405a08

Browse files
committed
refactor(EAV-296): rename isCurrent to isActive
1 parent 95b1187 commit 1405a08

File tree

5 files changed

+29
-28
lines changed

5 files changed

+29
-28
lines changed

meteor/server/api/deviceTriggers/StudioDeviceTriggerManager.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ export class StudioDeviceTriggerManager {
170170
sourceLayerType: undefined,
171171
sourceLayerName: undefined,
172172
styleClassNames: triggeredAction.styleClassNames,
173-
isCurrent: undefined,
173+
isActive: undefined,
174174
isNext: undefined,
175175
}),
176176
})
@@ -185,7 +185,7 @@ export class StudioDeviceTriggerManager {
185185
addedPreviewIds.push(adLibPreviewId)
186186

187187
this.tagsService.observeTallyTags(adLib)
188-
const { isCurrent, isNext } = this.tagsService.getTallyStateFromTags(adLib)
188+
const { isActive, isNext } = this.tagsService.getTallyStateFromTags(adLib)
189189
return DeviceTriggerMountedActionAdlibsPreview.upsertAsync(adLibPreviewId, {
190190
$set: literal<PreviewWrappedAdLib>({
191191
...adLib,
@@ -204,7 +204,7 @@ export class StudioDeviceTriggerManager {
204204
}
205205
: undefined,
206206
styleClassNames: triggeredAction.styleClassNames,
207-
isCurrent,
207+
isActive,
208208
isNext,
209209
}),
210210
})

meteor/server/api/deviceTriggers/TagsService.ts

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
} from '@sofie-automation/corelib/dist/playout/processAndPrune'
1010
import { applyAndValidateOverrides } from '@sofie-automation/corelib/dist/settings/objectWithOverrides'
1111
import { IWrappedAdLib } from '@sofie-automation/meteor-lib/dist/triggers/actionFilterChainCompilers'
12+
import { areSetsEqual, doSetsIntersect } from '@sofie-automation/corelib/dist/lib'
1213

1314
export class TagsService {
1415
protected onAirPiecesTags: Set<string> = new Set()
@@ -28,14 +29,14 @@ export class TagsService {
2829
}
2930
}
3031

31-
public getTallyStateFromTags(adLib: IWrappedAdLib): { isCurrent: boolean; isNext: boolean } {
32-
let isCurrent = false
32+
public getTallyStateFromTags(adLib: IWrappedAdLib): { isActive: boolean; isNext: boolean } {
33+
let isActive = false
3334
let isNext = false
3435
if ('currentPieceTags' in adLib && adLib.currentPieceTags) {
35-
isCurrent = adLib.currentPieceTags.every((tag) => this.onAirPiecesTags.has(tag))
36+
isActive = adLib.currentPieceTags.every((tag) => this.onAirPiecesTags.has(tag))
3637
isNext = adLib.currentPieceTags.every((tag) => this.nextPiecesTags.has(tag))
3738
}
38-
return { isCurrent, isNext }
39+
return { isActive, isNext }
3940
}
4041

4142
/**
@@ -113,24 +114,16 @@ export class TagsService {
113114

114115
private shouldUpdateTriggers(activePieceInstancesTags: Set<string>, nextPieceInstancesTags: Set<string>) {
115116
return (
116-
(!this.areSetsEqual(this.onAirPiecesTags, activePieceInstancesTags) ||
117-
!this.areSetsEqual(this.nextPiecesTags, nextPieceInstancesTags)) &&
118-
(this.doSetsIntersect(activePieceInstancesTags, this.tagsObservedByTriggers) ||
119-
this.doSetsIntersect(nextPieceInstancesTags, this.tagsObservedByTriggers) ||
120-
this.doSetsIntersect(this.onAirPiecesTags, this.tagsObservedByTriggers) ||
121-
this.doSetsIntersect(this.nextPiecesTags, this.tagsObservedByTriggers))
117+
(!areSetsEqual(this.onAirPiecesTags, activePieceInstancesTags) ||
118+
!areSetsEqual(this.nextPiecesTags, nextPieceInstancesTags)) &&
119+
(doSetsIntersect(activePieceInstancesTags, this.tagsObservedByTriggers) ||
120+
doSetsIntersect(nextPieceInstancesTags, this.tagsObservedByTriggers) ||
121+
doSetsIntersect(this.onAirPiecesTags, this.tagsObservedByTriggers) ||
122+
doSetsIntersect(this.nextPiecesTags, this.tagsObservedByTriggers))
122123
)
123124
}
124125

125-
protected areSetsEqual<T>(a: Set<T>, b: Set<T>): boolean {
126-
return a.size === b.size && [...a].every((value) => b.has(value))
127-
}
128-
129-
protected doSetsIntersect<T>(a: Set<T>, b: Set<T>): boolean {
130-
return [...a].some((value) => b.has(value))
131-
}
132-
133-
protected processAndPrunePieceInstanceTimings(
126+
private processAndPrunePieceInstanceTimings(
134127
partInstanceTimings: DBPartInstance['timings'] | undefined,
135128
pieceInstances: Array<Pick<PieceInstance, PieceInstanceFields>>,
136129
sourceLayers: SourceLayers

meteor/server/api/deviceTriggers/__tests__/TagsService.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ describe('TagsService', () => {
145145

146146
testee.updatePieceInstances(cache, showStyleBaseId)
147147
const result = testee.getTallyStateFromTags({} as IWrappedAdLib)
148-
expect(result).toEqual({ isCurrent: false, isNext: false })
148+
expect(result).toEqual({ isActive: false, isNext: false })
149149
})
150150

151151
test('adlib that is neither on air or next', () => {
@@ -156,7 +156,7 @@ describe('TagsService', () => {
156156
const result = testee.getTallyStateFromTags({
157157
currentPieceTags: [tag3],
158158
} as IWrappedAdLib)
159-
expect(result).toEqual({ isCurrent: false, isNext: false })
159+
expect(result).toEqual({ isActive: false, isNext: false })
160160
})
161161

162162
test('adlib that is both on air and next', () => {
@@ -168,7 +168,7 @@ describe('TagsService', () => {
168168
currentPieceTags: [tag2],
169169
} as IWrappedAdLib)
170170

171-
expect(result).toEqual({ isCurrent: true, isNext: true })
171+
expect(result).toEqual({ isActive: true, isNext: true })
172172
})
173173

174174
test('adlib that is only on air', () => {
@@ -179,7 +179,7 @@ describe('TagsService', () => {
179179
const result = testee.getTallyStateFromTags({
180180
currentPieceTags: [tag0],
181181
} as IWrappedAdLib)
182-
expect(result).toEqual({ isCurrent: true, isNext: false })
182+
expect(result).toEqual({ isActive: true, isNext: false })
183183
})
184184

185185
test('adlib that is only next', () => {
@@ -190,7 +190,7 @@ describe('TagsService', () => {
190190
const result = testee.getTallyStateFromTags({
191191
currentPieceTags: [tag1],
192192
} as IWrappedAdLib)
193-
expect(result).toEqual({ isCurrent: false, isNext: true })
193+
expect(result).toEqual({ isActive: false, isNext: true })
194194
})
195195

196196
test('updatePieceInstances returns true if observed tags are present in pieces', () => {

packages/corelib/src/lib.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,3 +469,11 @@ export function generateTranslation(
469469
namespaces,
470470
}
471471
}
472+
473+
export function areSetsEqual<T>(a: Set<T>, b: Set<T>): boolean {
474+
return a.size === b.size && [...a].every((value) => b.has(value))
475+
}
476+
477+
export function doSetsIntersect<T>(a: Set<T>, b: Set<T>): boolean {
478+
return [...a].some((value) => b.has(value))
479+
}

packages/shared-lib/src/input-gateway/deviceTriggerPreviews.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,6 @@ export type PreviewWrappedAdLib = Omit<IWrappedAdLibBase, '_id'> & {
6161
}
6262
| undefined
6363
styleClassNames: string | undefined
64-
isCurrent: boolean | undefined
64+
isActive: boolean | undefined
6565
isNext: boolean | undefined
6666
}

0 commit comments

Comments
 (0)