feat: hide preview canvas when nothing in timeline

This commit is contained in:
Maze Winther
2025-06-30 23:23:18 +02:00
parent 3e916f0f00
commit b474ad6b15

View File

@ -117,6 +117,9 @@ export function PreviewPanel() {
const activeClips = getActiveClips(); const activeClips = getActiveClips();
// Check if there are any clips in the timeline at all
const hasAnyClips = tracks.some((track) => track.clips.length > 0);
// Render a clip // Render a clip
const renderClip = (clipData: ActiveClip, index: number) => { const renderClip = (clipData: ActiveClip, index: number) => {
const { clip, mediaItem } = clipData; const { clip, mediaItem } = clipData;
@ -230,6 +233,7 @@ export function PreviewPanel() {
ref={containerRef} ref={containerRef}
className="flex-1 flex flex-col items-center justify-center p-3 min-h-0 min-w-0 gap-4" className="flex-1 flex flex-col items-center justify-center p-3 min-h-0 min-w-0 gap-4"
> >
{hasAnyClips && (
<div <div
ref={previewRef} ref={previewRef}
className="relative overflow-hidden rounded-sm bg-black border" className="relative overflow-hidden rounded-sm bg-black border"
@ -240,16 +244,15 @@ export function PreviewPanel() {
> >
{activeClips.length === 0 ? ( {activeClips.length === 0 ? (
<div className="absolute inset-0 flex items-center justify-center text-muted-foreground"> <div className="absolute inset-0 flex items-center justify-center text-muted-foreground">
{tracks.length === 0 No clips at current time
? "No media added to timeline"
: "No clips at current time"}
</div> </div>
) : ( ) : (
activeClips.map((clipData, index) => renderClip(clipData, index)) activeClips.map((clipData, index) => renderClip(clipData, index))
)} )}
</div> </div>
)}
<PreviewToolbar /> {hasAnyClips && <PreviewToolbar />}
</div> </div>
</div> </div>
); );