summaryrefslogtreecommitdiff
path: root/apps/web/src/components/editor-header.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/components/editor-header.tsx')
-rw-r--r--apps/web/src/components/editor-header.tsx77
1 files changed, 7 insertions, 70 deletions
diff --git a/apps/web/src/components/editor-header.tsx b/apps/web/src/components/editor-header.tsx
index 788ef60d..837bd97a 100644
--- a/apps/web/src/components/editor-header.tsx
+++ b/apps/web/src/components/editor-header.tsx
@@ -11,79 +11,19 @@ import { KeyboardShortcutsHelp } from "./keyboard-shortcuts-help";
import { useState, useRef } from "react";
import { Input } from "@/components/ui/input";
import { toast } from "sonner";
-import { useMediaStore } from "@/stores/media-store";
-import {
- VideoExporter,
- downloadBlob,
- type ExportOptions,
-} from "@/lib/export-utils";
export function EditorHeader() {
- const { getTotalDuration, tracks } = useTimelineStore();
+ const { getTotalDuration } = useTimelineStore();
const { activeProject, renameProject } = useProjectStore();
- const { mediaItems } = useMediaStore();
const [isEditing, setIsEditing] = useState(false);
const [newName, setNewName] = useState(activeProject?.name || "");
- const [isExporting, setIsExporting] = useState(false);
const inputRef = useRef<HTMLInputElement>(null);
- const handleExport = async () => {
- if (!activeProject) {
- toast.error("No active project to export");
- return;
- }
-
- if (tracks.length === 0) {
- toast.error("Timeline is empty - nothing to export");
- return;
- }
-
- setIsExporting(true);
-
- try {
- const exportOptions: ExportOptions = {
- format: "mp4",
- quality: "medium",
- resolution: "1080p",
- fps: activeProject.fps || 30,
- };
-
- const exporter = new VideoExporter((progress) => {
- toast.loading(
- `${progress.message} (${Math.round(progress.progress)}%)`,
- {
- id: "export-progress",
- }
- );
- });
-
- const exportedBlob = await exporter.exportProject(
- activeProject,
- tracks,
- mediaItems,
- exportOptions
- );
-
- // Download the exported video
- const filename = `${activeProject.name}.${exportOptions.format}`;
- downloadBlob(exportedBlob, filename);
-
- toast.success("Video exported successfully!", {
- id: "export-progress",
- });
-
- exporter.cleanup();
- } catch (error) {
- console.error("Export failed:", error);
- toast.error(
- `Export failed: ${error instanceof Error ? error.message : "Unknown error"}`,
- {
- id: "export-progress",
- }
- );
- } finally {
- setIsExporting(false);
- }
+ const handleExport = () => {
+ // TODO: Implement export functionality
+ // NOTE: This is already being worked on
+ console.log("Export project");
+ window.open("https://youtube.com/watch?v=dQw4w9WgXcQ", "_blank");
};
const handleNameClick = () => {
@@ -169,12 +109,9 @@ export function EditorHeader() {
variant="primary"
className="h-7 text-xs"
onClick={handleExport}
- disabled={isExporting}
>
<Download className="h-4 w-4" />
- <span className="text-sm">
- {isExporting ? "Exporting..." : "Export"}
- </span>
+ <span className="text-sm">Export</span>
</Button>
</nav>
);