Skip to content

Commit 945a9b0

Browse files
committed
wip: link up
1 parent 1488860 commit 945a9b0

File tree

3 files changed

+29
-5
lines changed

3 files changed

+29
-5
lines changed

packages/webui/src/client/lib/partInstanceUtil.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ export interface PartInstanceLike {
88
invalidReason?: PartInvalidReason
99
}
1010

11+
export interface PartInvalidReasonExt extends PartInvalidReason {
12+
/**
13+
* If this invalid reason came from the instance (playout) rather than the part (ingest)
14+
*/
15+
isInstanceInvalid: boolean
16+
}
17+
1118
/**
1219
* Get the effective invalidReason for a PartInstance.
1320
*
@@ -21,16 +28,22 @@ export interface PartInstanceLike {
2128
* @param partInstance The PartInstance object
2229
* @returns The effective invalidReason to display, or undefined if none
2330
*/
24-
export function getEffectiveInvalidReason(partInstance: PartInstanceLike): PartInvalidReason | undefined {
31+
export function getEffectiveInvalidReason(partInstance: PartInstanceLike): PartInvalidReasonExt | undefined {
2532
// Planned invalidReason (from Part/ingest) takes precedence
2633
// It shouldn't be possible to create a real PartInstance of an invalid Part
2734
if (partInstance.part.invalidReason) {
28-
return partInstance.part.invalidReason
35+
return {
36+
...partInstance.part.invalidReason,
37+
isInstanceInvalid: false,
38+
}
2939
}
3040

3141
// Runtime invalidReason (from PartInstance/playout)
3242
if (partInstance.invalidReason) {
33-
return partInstance.invalidReason
43+
return {
44+
...partInstance.invalidReason,
45+
isInstanceInvalid: true,
46+
}
3447
}
3548

3649
return undefined

packages/webui/src/client/ui/SegmentStoryboard/StoryboardPart.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,14 @@ export function StoryboardPart({
180180
</>
181181
)}
182182
{isInvalid ? (
183-
<InvalidPartCover className="segment-storyboard__part__invalid-cover" invalidReason={effectiveInvalidReason} />
183+
<InvalidPartCover
184+
className={
185+
effectiveInvalidReason?.isInstanceInvalid
186+
? 'segment-storyboard__part__invalid-part-instance-cover'
187+
: 'segment-storyboard__part__invalid-cover'
188+
}
189+
invalidReason={effectiveInvalidReason}
190+
/>
184191
) : null}
185192
{isFloated ? <div className="segment-storyboard__part__floated-cover"></div> : null}
186193
<div className="segment-storyboard__part__title">{part.instance.part.title}</div>

packages/webui/src/client/ui/SegmentTimeline/Parts/SegmentTimelinePart.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,11 @@ export class SegmentTimelinePartClass extends React.Component<Translated<WithTim
745745
{this.renderTimelineOutputGroups(this.props.part)}
746746
{isInvalid ? (
747747
<InvalidPartCover
748-
className="segment-timeline__part__invalid-cover"
748+
className={
749+
effectiveInvalidReason?.isInstanceInvalid
750+
? 'segment-timeline__part__invalid-part-instance-cover'
751+
: 'segment-timeline__part__invalid-cover'
752+
}
749753
invalidReason={effectiveInvalidReason}
750754
/>
751755
) : null}

0 commit comments

Comments
 (0)