@@ -95,10 +95,9 @@ export const [EditorContextProvider, useEditorContext] = createContextProvider(
9595						const  segment  =  segments [ currentSegmentIndex ] ; 
9696
9797						segments . splice ( currentSegmentIndex  +  1 ,  0 ,  { 
98+ 							...segment , 
9899							start : segment . start  +  searchTime , 
99100							end : segment . end , 
100- 							timescale : 1 , 
101- 							recordingSegment : segment . recordingSegment , 
102101						} ) ; 
103102						segments [ currentSegmentIndex ] . end  =  segment . start  +  searchTime ; 
104103					} ) , 
@@ -128,6 +127,27 @@ export const [EditorContextProvider, useEditorContext] = createContextProvider(
128127					setEditorState ( "timeline" ,  "selection" ,  null ) ; 
129128				} ) ; 
130129			} , 
130+ 			splitZoomSegment : ( index : number ,  time : number )  =>  { 
131+ 				setProject ( 
132+ 					"timeline" , 
133+ 					"zoomSegments" , 
134+ 					produce ( ( segments )  =>  { 
135+ 						const  segment  =  segments [ index ] ; 
136+ 						if  ( ! segment )  return ; 
137+ 
138+ 						const  newLengths  =  [ segment . end  -  segment . start  -  time ,  time ] ; 
139+ 
140+ 						if  ( newLengths . some ( ( l )  =>  l  <  1 ) )  return ; 
141+ 
142+ 						segments . splice ( index  +  1 ,  0 ,  { 
143+ 							...segment , 
144+ 							start : segment . start  +  time , 
145+ 							end : segment . end , 
146+ 						} ) ; 
147+ 						segments [ index ] . end  =  segment . start  +  time ; 
148+ 					} ) , 
149+ 				) ; 
150+ 			} , 
131151			deleteZoomSegments : ( segmentIndices : number [ ] )  =>  { 
132152				batch ( ( )  =>  { 
133153					setProject ( 
@@ -146,6 +166,27 @@ export const [EditorContextProvider, useEditorContext] = createContextProvider(
146166					setEditorState ( "timeline" ,  "selection" ,  null ) ; 
147167				} ) ; 
148168			} , 
169+ 			splitSceneSegment : ( index : number ,  time : number )  =>  { 
170+ 				setProject ( 
171+ 					"timeline" , 
172+ 					"sceneSegments" , 
173+ 					produce ( ( segments )  =>  { 
174+ 						const  segment  =  segments ?. [ index ] ; 
175+ 						if  ( ! segment )  return ; 
176+ 
177+ 						const  newLengths  =  [ segment . end  -  segment . start  -  time ,  time ] ; 
178+ 
179+ 						if  ( newLengths . some ( ( l )  =>  l  <  1 ) )  return ; 
180+ 
181+ 						segments . splice ( index  +  1 ,  0 ,  { 
182+ 							...segment , 
183+ 							start : segment . start  +  time , 
184+ 							end : segment . end , 
185+ 						} ) ; 
186+ 						segments [ index ] . end  =  segment . start  +  time ; 
187+ 					} ) , 
188+ 				) ; 
189+ 			} , 
149190			deleteSceneSegment : ( segmentIndex : number )  =>  { 
150191				batch ( ( )  =>  { 
151192					setProject ( 
0 commit comments