From 7444ab2894a03963c017ec4a788343e5749c405c Mon Sep 17 00:00:00 2001 From: Shubbu03 Date: Wed, 25 Jun 2025 12:13:16 +0530 Subject: [PATCH 1/7] UI fixes to the media-panel component --- .../web/src/components/editor/media-panel.tsx | 72 +++++++++++-------- 1 file changed, 44 insertions(+), 28 deletions(-) diff --git a/apps/web/src/components/editor/media-panel.tsx b/apps/web/src/components/editor/media-panel.tsx index 95cfa0a..51a92fe 100644 --- a/apps/web/src/components/editor/media-panel.tsx +++ b/apps/web/src/components/editor/media-panel.tsx @@ -84,17 +84,20 @@ export function MediaPanel() { useEffect(() => { const filtered = mediaItems.filter((item) => { - if (mediaFilter && mediaFilter !== 'all' && item.type !== mediaFilter) { + if (mediaFilter && mediaFilter !== "all" && item.type !== mediaFilter) { return false; } - - if (searchQuery && !item.name.toLowerCase().includes(searchQuery.toLowerCase())) { + + if ( + searchQuery && + !item.name.toLowerCase().includes(searchQuery.toLowerCase()) + ) { return false; } - + return true; }); - + setFilteredMediaItems(filtered); }, [mediaItems, mediaFilter, searchQuery]); @@ -209,23 +212,23 @@ export function MediaPanel() { {/* Button to add/upload media */}
{/* Search and filter controls */} - - setSearchQuery(e.target.value)} - /> + + setSearchQuery(e.target.value)} + /> {/* Add media button */} -
+
@@ -276,7 +284,15 @@ export function MediaPanel() { {renderPreview(item)} - {item.name} + + {item.name.length > 8 + ? `${item.name.slice(0, 4)}...${item.name.slice(-3)}` + : item.name} + {/* Show remove button on hover */} From 4db515df518879ea7553db55faba5f092ca9e210 Mon Sep 17 00:00:00 2001 From: Shubbu03 Date: Wed, 25 Jun 2025 12:29:06 +0530 Subject: [PATCH 2/7] code rabbit suggested fix --- apps/web/src/components/editor/media-panel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/components/editor/media-panel.tsx b/apps/web/src/components/editor/media-panel.tsx index 51a92fe..f2b3f65 100644 --- a/apps/web/src/components/editor/media-panel.tsx +++ b/apps/web/src/components/editor/media-panel.tsx @@ -247,7 +247,7 @@ export function MediaPanel() { <> Add From 66eb6f13d52edfd7497d40315f16e490268632f4 Mon Sep 17 00:00:00 2001 From: DevloperAmanSingh Date: Wed, 25 Jun 2025 13:27:39 +0530 Subject: [PATCH 3/7] feat(preview-panel): add volume control and mute functionality to the video player --- .../src/components/editor/preview-panel.tsx | 67 ++++++++++++++----- 1 file changed, 50 insertions(+), 17 deletions(-) diff --git a/apps/web/src/components/editor/preview-panel.tsx b/apps/web/src/components/editor/preview-panel.tsx index 624a549..33bfe68 100644 --- a/apps/web/src/components/editor/preview-panel.tsx +++ b/apps/web/src/components/editor/preview-panel.tsx @@ -5,16 +5,17 @@ import { useMediaStore } from "@/stores/media-store"; import { usePlaybackStore } from "@/stores/playback-store"; import { VideoPlayer } from "@/components/ui/video-player"; import { Button } from "@/components/ui/button"; -import { Play, Pause } from "lucide-react"; +import { Play, Pause, Volume2, VolumeX } from "lucide-react"; import { useState, useRef } from "react"; // Debug flag - set to false to hide active clips info -const SHOW_DEBUG_INFO = process.env.NODE_ENV === 'development'; +const SHOW_DEBUG_INFO = process.env.NODE_ENV === "development"; export function PreviewPanel() { const { tracks } = useTimelineStore(); const { mediaItems } = useMediaStore(); - const { isPlaying, toggle, currentTime } = usePlaybackStore(); + const { isPlaying, toggle, currentTime, muted, toggleMute, volume } = + usePlaybackStore(); const [canvasSize, setCanvasSize] = useState({ width: 1920, height: 1080 }); const [showDebug, setShowDebug] = useState(SHOW_DEBUG_INFO); const previewRef = useRef(null); @@ -30,12 +31,14 @@ export function PreviewPanel() { tracks.forEach((track) => { track.clips.forEach((clip) => { const clipStart = clip.startTime; - const clipEnd = clip.startTime + (clip.duration - clip.trimStart - clip.trimEnd); + const clipEnd = + clip.startTime + (clip.duration - clip.trimStart - clip.trimEnd); if (currentTime >= clipStart && currentTime < clipEnd) { - const mediaItem = clip.mediaId === "test" - ? { type: "test", name: clip.name, url: "", thumbnailUrl: "" } - : mediaItems.find((item) => item.id === clip.mediaId); + const mediaItem = + clip.mediaId === "test" + ? { type: "test", name: clip.name, url: "", thumbnailUrl: "" } + : mediaItems.find((item) => item.id === clip.mediaId); if (mediaItem || clip.mediaId === "test") { activeClips.push({ clip, track, mediaItem }); @@ -134,13 +137,19 @@ export function PreviewPanel() {