"use client"; import { Button } from "./ui/button"; import { ChevronDown, ArrowLeft, Download, SquarePen, Trash, Sun, } from "lucide-react"; import { useTimelineStore } from "@/stores/timeline-store"; import { HeaderBase } from "./header-base"; import { formatTimeCode } from "@/lib/time"; import { useProjectStore } from "@/stores/project-store"; import { KeyboardShortcutsHelp } from "./keyboard-shortcuts-help"; import { useState } from "react"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "./ui/dropdown-menu"; import Link from "next/link"; import { RenameProjectDialog } from "./rename-project-dialog"; import { DeleteProjectDialog } from "./delete-project-dialog"; import { useRouter } from "next/navigation"; import { FaDiscord } from "react-icons/fa6"; import { useTheme } from "next-themes"; import { usePlaybackStore } from "@/stores/playback-store"; import { TransitionUpIcon } from "./icons"; export function EditorHeader() { const { getTotalDuration } = useTimelineStore(); const { currentTime } = usePlaybackStore(); const { activeProject, renameProject, deleteProject } = useProjectStore(); const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false); const [isRenameDialogOpen, setIsRenameDialogOpen] = useState(false); const router = useRouter(); const { theme, setTheme } = useTheme(); const handleNameSave = async (newName: string) => { console.log("handleNameSave", newName); if (activeProject && newName.trim() && newName !== activeProject.name) { try { await renameProject(activeProject.id, newName.trim()); setIsRenameDialogOpen(false); } catch (error) { console.error("Failed to rename project:", error); } } }; const handleDelete = () => { if (activeProject) { deleteProject(activeProject.id); setIsDeleteDialogOpen(false); router.push("/projects"); } }; const leftContent = (
Projects setIsRenameDialogOpen(true)} > Rename project setIsDeleteDialogOpen(true)} > Delete Project Discord
); const centerContent = (
{formatTimeCode(currentTime, "HH:MM:SS:FF", activeProject?.fps || 30)} / {formatTimeCode( getTotalDuration(), "HH:MM:SS:FF", activeProject?.fps || 30 )}
); const rightContent = ( ); return ( ); } function ExportButton() { 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"); }; return ( ); }