From 3ef17cecb44f8e4fd2bf64afd229d0175a0d3f38 Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Tue, 8 Jul 2025 22:51:42 +0200 Subject: refactor: centralize logic to zustand store --- .../components/editor/media-panel/views/media.tsx | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) (limited to 'apps/web/src/components/editor') diff --git a/apps/web/src/components/editor/media-panel/views/media.tsx b/apps/web/src/components/editor/media-panel/views/media.tsx index 929aec18..00b9478b 100644 --- a/apps/web/src/components/editor/media-panel/views/media.tsx +++ b/apps/web/src/components/editor/media-panel/views/media.tsx @@ -3,7 +3,6 @@ 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, Upload, Video } from "lucide-react"; import { useEffect, useRef, useState } from "react"; import { toast } from "sonner"; @@ -85,25 +84,7 @@ export function MediaView() { return; } - // Remove elements automatically when delete media - const { tracks, removeTrack } = useTimelineStore.getState(); - tracks.forEach((track) => { - const elementsToRemove = track.elements.filter( - (element) => element.type === "media" && element.mediaId === id - ); - elementsToRemove.forEach((element) => { - useTimelineStore - .getState() - .removeElementFromTrack(track.id, element.id); - }); - // Only remove track if it becomes empty and has no other elements - const updatedTrack = useTimelineStore - .getState() - .tracks.find((t) => t.id === track.id); - if (updatedTrack && updatedTrack.elements.length === 0) { - removeTrack(track.id); - } - }); + // Media store now handles cascade deletion automatically await removeMediaItem(activeProject.id, id); }; -- cgit v1.3.1