diff --git a/apps/web/src/components/editor-header.tsx b/apps/web/src/components/editor-header.tsx index ecd2291d..a04af269 100644 --- a/apps/web/src/components/editor-header.tsx +++ b/apps/web/src/components/editor-header.tsx @@ -9,6 +9,7 @@ import { formatTimeCode } from "@/lib/time"; import { useProjectStore } from "@/stores/project-store"; import { KeyboardShortcutsHelp } from "./keyboard-shortcuts-help"; import { useState, useRef, useEffect } from "react"; +import { Input } from "@/components/ui/input"; export function EditorHeader() { const { getTotalDuration } = useTimelineStore(); @@ -42,7 +43,13 @@ export function EditorHeader() { // Save the new name if changed, exit edit mode const handleNameSave = async () => { if (activeProject && newName.trim() && newName !== activeProject.name) { - await renameProject(activeProject.id, newName.trim()); + try { + await renameProject(activeProject.id, newName.trim()); + }catch (error) { + console.error('Failed to rename project:', error); + // Reset to original name on error + setNewName(activeProject.name); + } } setIsEditing(false); }; @@ -62,28 +69,30 @@ export function EditorHeader() { > -
+
{isEditing ? ( - // Editable input for project name - setNewName(e.target.value)} onBlur={handleNameSave} onKeyDown={handleInputKeyDown} + maxLength={64} + aria-label="Project name" + autoFocus /> ) : ( // Display project name as span, click to edit e.key === 'Enter' && handleNameClick()} - > - {activeProject?.name} + >
{activeProject?.name}
)}