@@ -13,8 +13,7 @@ import { getElementDocumentOffset, OffsetPosition } from '../../../utils/positio
1313import { getSplitItems } from '../../SegmentContainer/getSplitItems'
1414import { PieceElement } from '../../SegmentContainer/PieceElement'
1515import { getPieceSteps , PieceMultistepChevron } from '../../SegmentContainer/PieceMultistepChevron'
16- import { PieceUi } from '../../SegmentContainer/withResolvedSegment'
17- import { withMediaObjectStatus } from '../../SegmentTimeline/withMediaObjectStatus'
16+ import { useContentStatusForPieceInstance } from '../../SegmentTimeline/withMediaObjectStatus'
1817import { PieceHoverInspector } from '../PieceHoverInspector'
1918
2019interface IProps {
@@ -52,14 +51,16 @@ function widthInBase(pieceMaxDuration: number, timelineBase: number): number {
5251}
5352
5453// TODO: Create useMediaObjectStatus that would set up new subscriptions
55- export const LinePartMainPiece = withMediaObjectStatus < IProps , { } > ( ) ( function LinePartMainPiece ( {
54+ export function LinePartMainPiece ( {
5655 partId,
5756 piece,
5857 partDuration,
5958 timelineBase,
6059 capToPartDuration,
6160 studio,
62- } ) {
61+ } : IProps ) : JSX . Element {
62+ const contentStatus = useContentStatusForPieceInstance ( piece . instance )
63+
6364 const [ hover , setHover ] = useState ( false )
6465 const [ origin , setOrigin ] = useState < OffsetPosition > ( { left : 0 , top : 0 } )
6566 const [ width , setWidth ] = useState ( 0 )
@@ -75,15 +76,13 @@ export const LinePartMainPiece = withMediaObjectStatus<IProps, {}>()(function Li
7576 }
7677 } , [ pieceMaxDuration , timelineBase ] )
7778
78- const pieceUi = piece as PieceUi
79-
8079 const seek = ( piece . instance . piece . content as any ) . seek ?? 0
8180
8281 const anomalies = useMemo (
8382 ( ) => (
8483 < >
85- { pieceUi . contentStatus ?. scenes &&
86- pieceUi . contentStatus ?. scenes . map (
84+ { contentStatus ?. scenes &&
85+ contentStatus ?. scenes . map (
8786 ( i ) =>
8887 i < pieceMaxDuration &&
8988 i - seek >= 0 && (
@@ -94,8 +93,8 @@ export const LinePartMainPiece = withMediaObjectStatus<IProps, {}>()(function Li
9493 > </ span >
9594 )
9695 ) }
97- { pieceUi . contentStatus ?. freezes &&
98- pieceUi . contentStatus ?. freezes . map (
96+ { contentStatus ?. freezes &&
97+ contentStatus ?. freezes . map (
9998 ( i ) =>
10099 i . start < pieceMaxDuration &&
101100 i . start - seek >= 0 && (
@@ -109,8 +108,8 @@ export const LinePartMainPiece = withMediaObjectStatus<IProps, {}>()(function Li
109108 > </ span >
110109 )
111110 ) }
112- { pieceUi . contentStatus ?. blacks &&
113- pieceUi . contentStatus ?. blacks . map (
111+ { contentStatus ?. blacks &&
112+ contentStatus ?. blacks . map (
114113 ( i ) =>
115114 i . start < pieceMaxDuration &&
116115 i . start - seek >= 0 && (
@@ -126,7 +125,7 @@ export const LinePartMainPiece = withMediaObjectStatus<IProps, {}>()(function Li
126125 ) }
127126 </ >
128127 ) ,
129- [ pieceUi . contentStatus ?. blacks , pieceUi . contentStatus ?. freezes , pieceUi . contentStatus ?. scenes ]
128+ [ contentStatus ?. blacks , contentStatus ?. freezes , contentStatus ?. scenes ]
130129 )
131130
132131 const onPointerEnter = ( e : React . PointerEvent < HTMLDivElement > ) => {
@@ -161,7 +160,7 @@ export const LinePartMainPiece = withMediaObjectStatus<IProps, {}>()(function Li
161160 setMousePosition ( e . pageX - origin . left )
162161 }
163162
164- const noticeLevel = getNoticeLevelForPieceStatus ( piece . contentStatus ?. status )
163+ const noticeLevel = getNoticeLevelForPieceStatus ( contentStatus ?. status )
165164
166165 const hasStepChevron = getPieceSteps ( piece )
167166
@@ -205,6 +204,7 @@ export const LinePartMainPiece = withMediaObjectStatus<IProps, {}>()(function Li
205204 hoverScrubTimePosition = { mouseTimePosition * ( piece . instance . piece . content . sourceDuration || 0 ) }
206205 hovering = { hover }
207206 pieceInstance = { piece }
207+ contentStatus = { contentStatus }
208208 layer = { piece . sourceLayer }
209209 originPosition = { origin }
210210 mousePosition = { mousePosition }
@@ -213,7 +213,7 @@ export const LinePartMainPiece = withMediaObjectStatus<IProps, {}>()(function Li
213213 ) }
214214 </ PieceElement >
215215 )
216- } )
216+ }
217217
218218const ColoredMark = React . memo ( function ColoredMark ( { color } : { color : string | undefined } ) {
219219 if ( ! color ) return null
0 commit comments