diff options
Diffstat (limited to 'apps/web/src/core/index.ts')
| -rw-r--r-- | apps/web/src/core/index.ts | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/apps/web/src/core/index.ts b/apps/web/src/core/index.ts index 1086a6d2..8ee76e28 100644 --- a/apps/web/src/core/index.ts +++ b/apps/web/src/core/index.ts @@ -10,7 +10,6 @@ import { AudioManager } from "./managers/audio-manager"; import { SelectionManager } from "./managers/selection-manager"; import { registerDefaultEffects } from "@/lib/effects"; import { registerDefaultMasks } from "@/lib/masks"; -import { isMainTrack } from "@/lib/timeline/placement"; export class EditorCore { private static instance: EditorCore | null = null; @@ -39,11 +38,21 @@ export class EditorCore { this.audio = new AudioManager(this); this.selection = new SelectionManager(this); this.command.registerReactor(() => { - const tracks = this.timeline.getTracks(); - const prunedTracks = tracks.filter( - (track) => track.elements.length > 0 || isMainTrack(track), - ); - if (prunedTracks.length !== tracks.length) { + const activeScene = this.scenes.getActiveSceneOrNull(); + if (!activeScene) { + return; + } + + const tracks = activeScene.tracks; + const prunedTracks = { + ...tracks, + overlay: tracks.overlay.filter((track) => track.elements.length > 0), + audio: tracks.audio.filter((track) => track.elements.length > 0), + }; + if ( + prunedTracks.overlay.length !== tracks.overlay.length || + prunedTracks.audio.length !== tracks.audio.length + ) { this.timeline.updateTracks(prunedTracks); } }); |
