1
- import { clamp , forEach } from "lodash" ;
1
+ import { clamp } from "lodash" ;
2
2
import { createSlice , nanoid , createAsyncThunk , PayloadAction , createSelector } from "@reduxjs/toolkit" ;
3
3
import { client } from "../util/client" ;
4
4
@@ -20,7 +20,6 @@ export interface video {
20
20
tracks : Track [ ] ,
21
21
subtitlesFromOpencast : SubtitlesFromOpencast [ ] ,
22
22
activeSegmentIndex : number , // Index of the segment that is currenlty hovered
23
- validSegments : boolean , // Whether the segment will result in a valid video edit
24
23
selectedWorkflowId : string , // Id of the currently selected workflow
25
24
aspectRatios : { width : number , height : number ; } [ ] , // Aspect ratios of every video
26
25
hasChanges : boolean , // Did user make changes in cutting view since last save
@@ -56,7 +55,6 @@ export const initialState: video & httpRequestState = {
56
55
tracks : [ ] ,
57
56
subtitlesFromOpencast : [ ] ,
58
57
activeSegmentIndex : 0 ,
59
- validSegments : true ,
60
58
selectedWorkflowId : "" ,
61
59
previewTriggered : false ,
62
60
clickTriggered : false ,
@@ -187,21 +185,6 @@ const videoSlice = createSlice({
187
185
updateCurrentlyAt ( state , jumpTarget ) ;
188
186
state . jumpTriggered = true ;
189
187
} ,
190
- validateSegments : state => {
191
- let allDeleted = true ;
192
-
193
- // Test if whole video has been deleted
194
- state . segments . forEach ( segment => {
195
- if ( ! segment . deleted ) {
196
- allDeleted = false ;
197
- }
198
- } )
199
- if ( allDeleted ) {
200
- state . validSegments = false ;
201
- } else {
202
- state . validSegments = true ;
203
- }
204
- } ,
205
188
addSegment : ( state , action : PayloadAction < video [ "segments" ] [ 0 ] > ) => {
206
189
state . segments . push ( action . payload ) ;
207
190
} ,
@@ -381,7 +364,14 @@ const videoSlice = createSlice({
381
364
selectCurrentlyAtInSeconds : state => state . currentlyAt / 1000 ,
382
365
selectSegments : state => state . segments ,
383
366
selectActiveSegmentIndex : state => state . activeSegmentIndex ,
384
- selectValidSegments : state => state . validSegments ,
367
+ selectValidCutting : state => {
368
+ let validSegment = false ;
369
+ // Test if whole video hasn't been deleted
370
+ state . segments . forEach ( segment => {
371
+ validSegment ||= ! segment . deleted ;
372
+ } )
373
+ return validSegment ;
374
+ } ,
385
375
selectIsCurrentSegmentAlive : state => ! state . segments [ state . activeSegmentIndex ] . deleted ,
386
376
selectSelectedWorkflowId : state => state . selectedWorkflowId ,
387
377
selectHasChanges : state => state . hasChanges ,
@@ -564,7 +554,6 @@ export const {
564
554
setJumpTriggered,
565
555
jumpToPreviousSegment,
566
556
jumpToNextSegment,
567
- validateSegments,
568
557
} = videoSlice . actions ;
569
558
570
559
export const selectVideos = createSelector (
@@ -585,7 +574,7 @@ export const {
585
574
selectCurrentlyAtInSeconds,
586
575
selectSegments,
587
576
selectActiveSegmentIndex,
588
- selectValidSegments ,
577
+ selectValidCutting ,
589
578
selectIsCurrentSegmentAlive,
590
579
selectSelectedWorkflowId,
591
580
selectHasChanges,
0 commit comments