@@ -48,7 +48,7 @@ export default function useModeManager({
4848 recipes : Recipe [ ] ;
4949 selectTrack : ( trackId : TrackId | null , edit : boolean ) => void ;
5050 selectNextTrack : ( delta ?: number ) => TrackId | null ;
51- addTrack : ( frame : number , defaultType : string ) => Track ;
51+ addTrack : ( frame : number , defaultType : string , afterId ?: TrackId ) => Track ;
5252 removeTrack : ( trackId : TrackId ) => void ;
5353} ) {
5454 let creating = false ;
@@ -135,7 +135,9 @@ export default function useModeManager({
135135
136136 function handleAddTrackOrDetection ( ) : TrackId {
137137 // Handles adding a new track with the NewTrack Settings
138- const newTrackId = addTrack ( frame . value , newTrackSettings . type ) . trackId ;
138+ const newTrackId = addTrack (
139+ frame . value , newTrackSettings . type , selectedTrackId . value || undefined ,
140+ ) . trackId ;
139141 selectTrack ( newTrackId , true ) ;
140142 creating = true ;
141143 return newTrackId ;
@@ -341,15 +343,16 @@ export default function useModeManager({
341343 }
342344
343345 function handleRemoveTrack ( trackIds : TrackId [ ] ) {
346+ /* Figure out next track ID */
347+ const maybeNextTrackId = selectNextTrack ( 1 ) ;
348+ const previousOrNext = maybeNextTrackId !== null
349+ ? maybeNextTrackId
350+ : selectNextTrack ( - 1 ) ;
351+ /* Delete track */
344352 trackIds . forEach ( ( trackId ) => {
345353 removeTrack ( trackId ) ;
346354 } ) ;
347- if ( selectedTrackId . value !== null ) {
348- if ( trackIds . includes ( selectedTrackId . value ) ) {
349- const newTrack = selectNextTrack ( 1 ) !== null ? selectNextTrack ( 1 ) : selectNextTrack ( - 1 ) ;
350- selectTrack ( newTrack , false ) ;
351- }
352- }
355+ selectTrack ( previousOrNext , false ) ;
353356 }
354357
355358 /** Toggle editing mode for track */
0 commit comments