summaryrefslogtreecommitdiff
path: root/apps/web
diff options
context:
space:
mode:
authorpriyankarpal <88102392+priyankarpal@users.noreply.github.com>2025-06-26 21:41:26 +0530
committerpriyankarpal <88102392+priyankarpal@users.noreply.github.com>2025-06-26 21:41:26 +0530
commitfff95afbc628652e182cc35ac276068a39386116 (patch)
treed5eeccc6809cc1954b5dcaaad323efeed7b934b7 /apps/web
parentf76555dae530e9bbc2a892300b228404991d3458 (diff)
downloadopencut-fff95afbc628652e182cc35ac276068a39386116.tar.gz
fix: Only remove track if it becomes empty and has no other clips
Diffstat (limited to 'apps/web')
-rw-r--r--apps/web/src/components/editor/media-panel.tsx8
1 files changed, 7 insertions, 1 deletions
diff --git a/apps/web/src/components/editor/media-panel.tsx b/apps/web/src/components/editor/media-panel.tsx
index 7ca22cc1..f717234d 100644
--- a/apps/web/src/components/editor/media-panel.tsx
+++ b/apps/web/src/components/editor/media-panel.tsx
@@ -64,7 +64,13 @@ export function MediaPanel() {
// Remove tracks automatically when delete media
const { tracks, removeTrack } = useTimelineStore.getState();
tracks.forEach((track) => {
- if (track.clips.some((clip) => clip.mediaId === id)) {
+ const clipsToRemove = track.clips.filter((clip) => clip.mediaId === id);
+ clipsToRemove.forEach((clip) => {
+ useTimelineStore.getState().removeClipFromTrack(track.id, clip.id);
+ });
+ // Only remove track if it becomes empty and has no other clips
+ const updatedTrack = useTimelineStore.getState().tracks.find(t => t.id === track.id);
+ if (updatedTrack && updatedTrack.clips.length === 0) {
removeTrack(track.id);
}
});