@@ -175,144 +175,138 @@ export function SegmentContextMenu({
175175 < hr />
176176 </ >
177177 ) }
178- { part &&
179- isPartNext !== undefined &&
180- isPartOrphaned !== undefined &&
181- ! part . instance . part . invalid &&
182- timecode !== null && (
183- < >
184- < MenuItem
185- onClick = { ( e ) => onSetNext ( part . instance . part , e ) }
186- disabled = { ! ! part . instance . orphaned || ! canSetAsNext }
187- >
188- < span
189- dangerouslySetInnerHTML = { {
190- __html : t ( `Set part as <strong>Next</strong>` ) ,
191- } }
192- > </ span >
193- </ MenuItem >
194- { startsAt !== undefined && part && enablePlayFromAnywhere ? (
195- < >
178+ { part && isPartNext !== undefined && isPartOrphaned !== undefined && timecode !== null && (
179+ < >
180+ < MenuItem
181+ onClick = { ( e ) => onSetNext ( part . instance . part , e ) }
182+ disabled = { ! ! part . instance . orphaned || ! canSetAsNext }
183+ >
184+ < span
185+ dangerouslySetInnerHTML = { {
186+ __html : t ( `Set part as <strong>Next</strong>` ) ,
187+ } }
188+ > </ span >
189+ </ MenuItem >
190+ { startsAt !== undefined && part && enablePlayFromAnywhere ? (
191+ < >
192+ < MenuItem
193+ onClick = { ( e ) =>
194+ onSetAsNextFromHere (
195+ part . instance ,
196+ playlist ?. nextPartInfo ?. partInstanceId ?? null ,
197+ playlist ?. currentPartInfo ?. partInstanceId ?? null ,
198+ e
199+ )
200+ }
201+ disabled = { getIsPlayFromHereDisabled ( ) }
202+ >
203+ < span
204+ dangerouslySetInnerHTML = { {
205+ __html : t (
206+ `Set part from ${ RundownUtils . formatTimeToShortTime ( Math . floor ( timecode / 1000 ) * 1000 ) } as <strong>Next</strong>`
207+ ) ,
208+ } }
209+ > </ span >
210+ </ MenuItem >
211+ < MenuItem
212+ onClick = { ( e ) =>
213+ onSetAsNextFromHere (
214+ part . instance ,
215+ playlist ?. nextPartInfo ?. partInstanceId ?? null ,
216+ playlist ?. currentPartInfo ?. partInstanceId ?? null ,
217+ e ,
218+ true
219+ )
220+ }
221+ disabled = { getIsPlayFromHereDisabled ( true ) }
222+ >
223+ < span >
224+ { t ( `Play part from ${ RundownUtils . formatTimeToShortTime ( Math . floor ( timecode / 1000 ) * 1000 ) } ` ) }
225+ </ span >
226+ </ MenuItem >
227+ </ >
228+ ) : null }
229+ { enableQuickLoop && ! RundownResolver . isLoopLocked ( playlist ) && (
230+ < >
231+ { RundownResolver . isQuickLoopStart ( part . partId , playlist ) ? (
232+ < MenuItem onClick = { ( e ) => onSetQuickLoopStart ( null , e ) } >
233+ < span > { t ( 'Clear QuickLoop Start' ) } </ span >
234+ </ MenuItem >
235+ ) : (
196236 < MenuItem
197237 onClick = { ( e ) =>
198- onSetAsNextFromHere (
199- part . instance ,
200- playlist ?. nextPartInfo ?. partInstanceId ?? null ,
201- playlist ?. currentPartInfo ?. partInstanceId ?? null ,
202- e
203- )
238+ onSetQuickLoopStart ( { type : QuickLoopMarkerType . PART , id : part . instance . part . _id } , e )
204239 }
205- disabled = { getIsPlayFromHereDisabled ( ) }
240+ disabled = { ! ! part . instance . orphaned || ! canSetAsNext }
206241 >
207- < span
208- dangerouslySetInnerHTML = { {
209- __html : t (
210- `Set part from ${ RundownUtils . formatTimeToShortTime ( Math . floor ( timecode / 1000 ) * 1000 ) } as <strong>Next</strong>`
211- ) ,
212- } }
213- > </ span >
242+ < span > { t ( 'Set as QuickLoop Start' ) } </ span >
214243 </ MenuItem >
244+ ) }
245+ { RundownResolver . isQuickLoopEnd ( part . partId , playlist ) ? (
246+ < MenuItem onClick = { ( e ) => onSetQuickLoopEnd ( null , e ) } >
247+ < span > { t ( 'Clear QuickLoop End' ) } </ span >
248+ </ MenuItem >
249+ ) : (
215250 < MenuItem
216251 onClick = { ( e ) =>
217- onSetAsNextFromHere (
218- part . instance ,
219- playlist ?. nextPartInfo ?. partInstanceId ?? null ,
220- playlist ?. currentPartInfo ?. partInstanceId ?? null ,
221- e ,
222- true
223- )
252+ onSetQuickLoopEnd ( { type : QuickLoopMarkerType . PART , id : part . instance . part . _id } , e )
224253 }
225- disabled = { getIsPlayFromHereDisabled ( true ) }
254+ disabled = { ! ! part . instance . orphaned || ! canSetAsNext }
226255 >
227- < span >
228- { t ( `Play part from ${ RundownUtils . formatTimeToShortTime ( Math . floor ( timecode / 1000 ) * 1000 ) } ` ) }
229- </ span >
256+ < span > { t ( 'Set as QuickLoop End' ) } </ span >
230257 </ MenuItem >
231- </ >
232- ) : null }
233- { enableQuickLoop && ! RundownResolver . isLoopLocked ( playlist ) && (
234- < >
235- { RundownResolver . isQuickLoopStart ( part . partId , playlist ) ? (
236- < MenuItem onClick = { ( e ) => onSetQuickLoopStart ( null , e ) } >
237- < span > { t ( 'Clear QuickLoop Start' ) } </ span >
238- </ MenuItem >
239- ) : (
240- < MenuItem
241- onClick = { ( e ) =>
242- onSetQuickLoopStart ( { type : QuickLoopMarkerType . PART , id : part . instance . part . _id } , e )
243- }
244- disabled = { ! ! part . instance . orphaned || ! canSetAsNext }
245- >
246- < span > { t ( 'Set as QuickLoop Start' ) } </ span >
247- </ MenuItem >
248- ) }
249- { RundownResolver . isQuickLoopEnd ( part . partId , playlist ) ? (
250- < MenuItem onClick = { ( e ) => onSetQuickLoopEnd ( null , e ) } >
251- < span > { t ( 'Clear QuickLoop End' ) } </ span >
252- </ MenuItem >
253- ) : (
254- < MenuItem
255- onClick = { ( e ) =>
256- onSetQuickLoopEnd ( { type : QuickLoopMarkerType . PART , id : part . instance . part . _id } , e )
257- }
258- disabled = { ! ! part . instance . orphaned || ! canSetAsNext }
259- >
260- < span > { t ( 'Set as QuickLoop End' ) } </ span >
261- </ MenuItem >
262- ) }
263- </ >
264- ) }
258+ ) }
259+ </ >
260+ ) }
261+
262+ < UserEditOperationMenuItems
263+ rundownId = { part . instance . rundownId }
264+ targetName = { part . instance . part . title }
265+ operationTarget = { {
266+ segmentExternalId : segment ?. externalId ,
267+ partExternalId : part . instance . part . externalId ,
268+ pieceExternalId : undefined ,
269+ } }
270+ userEditOperations = { part . instance . part . userEditOperations }
271+ isFormEditable = { isPartEditAble }
272+ />
265273
274+ { piece && piece . instance . piece . userEditOperations && (
266275 < UserEditOperationMenuItems
267276 rundownId = { part . instance . rundownId }
268- targetName = { part . instance . part . title }
277+ targetName = { piece . instance . piece . name }
269278 operationTarget = { {
270279 segmentExternalId : segment ?. externalId ,
271280 partExternalId : part . instance . part . externalId ,
272- pieceExternalId : undefined ,
281+ pieceExternalId : piece . instance . piece . externalId ,
273282 } }
274- userEditOperations = { part . instance . part . userEditOperations }
283+ userEditOperations = { piece . instance . piece . userEditOperations as CoreUserEditingDefinition [ ] | undefined }
275284 isFormEditable = { isPartEditAble }
276285 />
286+ ) }
277287
278- { piece && piece . instance . piece . userEditOperations && (
279- < UserEditOperationMenuItems
280- rundownId = { part . instance . rundownId }
281- targetName = { piece . instance . piece . name }
282- operationTarget = { {
283- segmentExternalId : segment ?. externalId ,
284- partExternalId : part . instance . part . externalId ,
285- pieceExternalId : piece . instance . piece . externalId ,
286- } }
287- userEditOperations = {
288- piece . instance . piece . userEditOperations as CoreUserEditingDefinition [ ] | undefined
289- }
290- isFormEditable = { isPartEditAble }
291- />
292- ) }
293-
294- { enableUserEdits && ( segmentHasEditableContent || partHasEditableContent || pieceHasEditableContent ) && (
295- < >
296- < hr />
297- { segmentHasEditableContent && (
298- < MenuItem onClick = { ( ) => onEditProps ( { type : 'segment' , elementId : part . instance . segmentId } ) } >
299- < span > { t ( 'Edit Segment Properties' ) } </ span >
300- </ MenuItem >
301- ) }
302- { partHasEditableContent && (
303- < MenuItem onClick = { ( ) => onEditProps ( { type : 'part' , elementId : part . instance . part . _id } ) } >
304- < span > { t ( 'Edit Part Properties' ) } </ span >
305- </ MenuItem >
306- ) }
307- { pieceHasEditableContent && piece && (
308- < MenuItem onClick = { ( ) => onEditProps ( { type : 'piece' , elementId : piece . instance . piece . _id } ) } >
309- < span > { t ( 'Edit Piece Properties' ) } </ span >
310- </ MenuItem >
311- ) }
312- </ >
313- ) }
314- </ >
315- ) }
288+ { enableUserEdits && ( segmentHasEditableContent || partHasEditableContent || pieceHasEditableContent ) && (
289+ < >
290+ < hr />
291+ { segmentHasEditableContent && (
292+ < MenuItem onClick = { ( ) => onEditProps ( { type : 'segment' , elementId : part . instance . segmentId } ) } >
293+ < span > { t ( 'Edit Segment Properties' ) } </ span >
294+ </ MenuItem >
295+ ) }
296+ { partHasEditableContent && (
297+ < MenuItem onClick = { ( ) => onEditProps ( { type : 'part' , elementId : part . instance . part . _id } ) } >
298+ < span > { t ( 'Edit Part Properties' ) } </ span >
299+ </ MenuItem >
300+ ) }
301+ { pieceHasEditableContent && piece && (
302+ < MenuItem onClick = { ( ) => onEditProps ( { type : 'piece' , elementId : piece . instance . piece . _id } ) } >
303+ < span > { t ( 'Edit Piece Properties' ) } </ span >
304+ </ MenuItem >
305+ ) }
306+ </ >
307+ ) }
308+ </ >
309+ ) }
316310 </ ContextMenu >
317311 </ Escape >
318312 ) : null
0 commit comments