diff --git a/apps/web/src/components/editor-header.tsx b/apps/web/src/components/editor-header.tsx
index f59193d..c6cecbe 100644
--- a/apps/web/src/components/editor-header.tsx
+++ b/apps/web/src/components/editor-header.tsx
@@ -4,20 +4,25 @@ import Link from "next/link";
import { Button } from "./ui/button";
import { ChevronLeft, Download } from "lucide-react";
import { useProjectStore } from "@/stores/project-store";
-import { useMediaStore } from "@/stores/media-store";
import { useTimelineStore } from "@/stores/timeline-store";
import { HeaderBase } from "./header-base";
export function EditorHeader() {
const { activeProject } = useProjectStore();
- const { mediaItems } = useMediaStore();
- const { tracks } = useTimelineStore();
+ const { getTotalDuration } = useTimelineStore();
const handleExport = () => {
// TODO: Implement export functionality
console.log("Export project");
};
+ // Format duration from seconds to MM:SS format
+ const formatDuration = (seconds: number): string => {
+ const minutes = Math.floor(seconds / 60);
+ const remainingSeconds = Math.floor(seconds % 60);
+ return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
+ };
+
const leftContent = (
- {mediaItems.length} media
- •
- {tracks.length} tracks
+ {formatDuration(getTotalDuration())}
);
diff --git a/apps/web/src/components/editor/preview-panel.tsx b/apps/web/src/components/editor/preview-panel.tsx
index 488e1fc..16c808f 100644
--- a/apps/web/src/components/editor/preview-panel.tsx
+++ b/apps/web/src/components/editor/preview-panel.tsx
@@ -18,6 +18,9 @@ export function PreviewPanel() {
? mediaItems.find((item) => item.id === firstClip.mediaId)
: null;
+ // Calculate dynamic aspect ratio - default to 16:9 if no media
+ const aspectRatio = firstMediaItem?.aspectRatio || 16 / 9;
+
const renderPreviewContent = () => {
if (!firstMediaItem) {
return (
@@ -32,7 +35,7 @@ export function PreviewPanel() {