summaryrefslogtreecommitdiff
path: root/apps/web/src/components/editor/media-panel.tsx
diff options
context:
space:
mode:
authorpriyankarpal <88102392+priyankarpal@users.noreply.github.com>2025-06-26 21:29:03 +0530
committerpriyankarpal <88102392+priyankarpal@users.noreply.github.com>2025-06-26 21:29:03 +0530
commitf76555dae530e9bbc2a892300b228404991d3458 (patch)
tree07873758107ae16ad6967958629eaa0d416be4b1 /apps/web/src/components/editor/media-panel.tsx
parent53184217bf72a83134e82f61422f6ded8cad00f1 (diff)
downloadopencut-f76555dae530e9bbc2a892300b228404991d3458.tar.gz
fix: remmove video track when media is deleted
Diffstat (limited to 'apps/web/src/components/editor/media-panel.tsx')
-rw-r--r--apps/web/src/components/editor/media-panel.tsx22
1 files changed, 16 insertions, 6 deletions
diff --git a/apps/web/src/components/editor/media-panel.tsx b/apps/web/src/components/editor/media-panel.tsx
index dfe08365..7ca22cc1 100644
--- a/apps/web/src/components/editor/media-panel.tsx
+++ b/apps/web/src/components/editor/media-panel.tsx
@@ -1,14 +1,15 @@
"use client";
-import { Button } from "../ui/button";
-import { AspectRatio } from "../ui/aspect-ratio";
-import { DragOverlay } from "../ui/drag-overlay";
-import { useMediaStore, type MediaItem } from "@/stores/media-store";
-import { processMediaFiles } from "@/lib/media-processing";
-import { Plus, Image, Video, Music, Trash2, Upload } from "lucide-react";
import { useDragDrop } from "@/hooks/use-drag-drop";
+import { processMediaFiles } from "@/lib/media-processing";
+import { useMediaStore, type MediaItem } from "@/stores/media-store";
+import { useTimelineStore } from "@/stores/timeline-store";
+import { Image, Music, Plus, Trash2, Upload, Video } from "lucide-react";
import { useEffect, useRef, useState } from "react";
import { toast } from "sonner";
+import { AspectRatio } from "../ui/aspect-ratio";
+import { Button } from "../ui/button";
+import { DragOverlay } from "../ui/drag-overlay";
// MediaPanel lets users add, view, and drag media (images, videos, audio) into the project.
// You can upload files or drag them from your computer. Dragging from here to the timeline adds them to your video project.
@@ -58,6 +59,15 @@ export function MediaPanel() {
const handleRemove = (e: React.MouseEvent, id: string) => {
// Remove a media item from the store
e.stopPropagation();
+
+
+ // Remove tracks automatically when delete media
+ const { tracks, removeTrack } = useTimelineStore.getState();
+ tracks.forEach((track) => {
+ if (track.clips.some((clip) => clip.mediaId === id)) {
+ removeTrack(track.id);
+ }
+ });
removeMediaItem(id);
};