@@ -20,6 +20,14 @@ export const Timeline = ({
2020 vids : Vid [ ] ;
2121} ) => {
2222 const [ preview , setPreview ] = useState < null | { vid : Vid ; i : number } > ( null ) ;
23+
24+ const fixFroms = ( ) => {
25+ segments . forEach ( ( s , i ) => {
26+ if ( i == 0 ) s . from = 0 ;
27+ if ( i > 0 && s . from == 0 ) s . from = 1 ;
28+ } ) ;
29+ } ;
30+
2331 return (
2432 < Section name = "Timeline" >
2533 { vids . length === 0 ? (
@@ -34,7 +42,7 @@ export const Timeline = ({
3442 const getVid = ( ) => vids . find ( ( vid ) => vid . name === s . name ) ! ;
3543 const swap = ( j : number , k : number ) => {
3644 [ segments [ j ] , segments [ k ] ] = [ segments [ k ] , segments [ j ] ] ;
37- segments [ 0 ] . from = 0 ;
45+ fixFroms ( ) ;
3846 setSegments ( [ ...segments ] ) ;
3947 } ;
4048
@@ -46,6 +54,7 @@ export const Timeline = ({
4654 s . name = name ;
4755 s . to = clamp ( s . to , - Infinity , getVid ( ) . chunks . length ) ;
4856 s . from = clamp ( s . from , 0 , s . to - 1 ) ;
57+ fixFroms ( ) ;
4958 setSegments ( [ ...segments ] ) ;
5059 } }
5160 options = { vids . map ( ( vid ) => vid . name ) }
@@ -54,6 +63,7 @@ export const Timeline = ({
5463 value = { s . from }
5564 onChange = { ( from ) => {
5665 s . from = from ;
66+ fixFroms ( ) ;
5767 setSegments ( [ ...segments ] ) ;
5868 setPreview ( { vid : getVid ( ) , i : from } ) ;
5969 } }
@@ -94,7 +104,9 @@ export const Timeline = ({
94104 </ button >
95105 < button
96106 onClick = { ( ) => {
97- setSegments ( segments . filter ( ( _ , j ) => i !== j ) ) ;
107+ const newSegments = segments . filter ( ( _ , j ) => i !== j ) ;
108+ if ( newSegments . length ) newSegments [ 0 ] . from = 0 ;
109+ setSegments ( newSegments ) ;
98110 } }
99111 >
100112 delete
@@ -110,7 +122,7 @@ export const Timeline = ({
110122 ...segments ,
111123 {
112124 name : vids [ 0 ] ! . name ,
113- from : 0 ,
125+ from : segments . length ? 1 : 0 ,
114126 to : vids [ 0 ] . chunks . length ,
115127 repeat : 1 ,
116128 } ,
0 commit comments